فئة المحفوظات: التنمية SharePoint

الخيزران "تقويم التفاعل" مع الأسباب SharePoint "حدث خطأ غير متوقع"

اليوم, لقد كنت أعمل في بيئة يستخدم جزء ويب تقويم الخيزران لبعض تحسين التعاون. وهذا مزرعة صغيرة/متوسطة قياسية مع اثنين متوازنة التحميل WFEs, "ملقم تطبيق" للفهرسة و InfoPath ومتفاوت المسافات SQL مرة أخرى نهاية.

تثبيت العميل بعض الكوارث الانتعاش البرمجيات على واحدة من WFEs والتي أسفرت عن WFE مكسورة لموقع معين في مجموعة الموقع. كلما أشار موازنة التحميل في المتضررين WFE وهذا الموقع, وشهد المستخدمين شاشة بيضاء فارغة إلى حد كبير مع الجملة "حدث خطأ غير متوقع". معلومات أخرى لا تظهر, فقط تلك الجملة.

طلبوا مني أن ننظر إلى الأمر. تتكرر المشكلة بسهولة، وثم أضيف ?محتويات = 1 إلى نهاية URL. هذا كيف علمت أنهم كانوا يستخدمون جزء ويب الخيزران. عدت إلى الصفحة والآن, فجأة, أظهر لي رسالة خطأ منظم لطيفة:

image

أنا لا أعرف ما يحدث أو ما فعلته للحصول على رسالة الإعلام بالخطأ التي تسيطر عليها لعرض البعض من إلحاق ?محتويات = 1 بت من سلسلة الاستعلام.

وربما هذا حالة نادرة جداً من حافة لكن إذا كان يمكنك الحصول على هذه الرسالة, "حدث خطأ غير متوقع" المضي قدما وإضافة ?محتويات = 1 إلى سلسلة الاستعلام، ونرى فيها أن يؤدي.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

[تشنورتي] بطاقات: ,

استخدام عاكس على Microsoft.SharePoint.dll

Redgate .NET Reflector مايكل بلومنتال وقد طرح مقالة حول التنبيهات ووجهات النظر ("طرق العرض التي يمكن استخدامها عند إنشاء تنبيه ?"), من المثير للاهتمام في حيثياتها. ومع ذلك, أنا مهتم أكثر لترى كيف يمشي منهجي من خلال عملية استخدام عاكس.NET في ريدجاتي. خطوة بخطوة, وقال أنه تبين كيفية استخدام تلك الأداة تعقب كيفية SharePoint تحديد عما إذا كان ينبغي أن يكون نظرة على قائمة "سوبسكريبابل" لعدم وجود كلمة أفضل (he explains this much better than I do 🙂 ).

عند هذه النقطة في عصر SharePoint, سيكون لديك تقريبا للصم والمكفوفين لم يسمع أو قراءة حول استخدام تلك الأداة. أنها متقدمة والأشياء والإحساس ببلدي أنه في العديد من الطرق أداة أخير. ومع ذلك, إذا كنت تعتقد أنت في حاجة إليها ولكن لا أعرف حقاً كيف, متابعة الكتابة لمايكل يبدو وكأنه تعليمي كبير على هذا الموضوع.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

فرز عناصر التقويم في طريقة عرض التقويم

أنا باستخدام تقويم لتعقب مناقشات الفريق في يوم معين. لقد دورتين: صباحا وبعد الظهر. أريد إنشاء طريقة عرض تظهر جلسات الصباح فقط المسرودة أبجدياً عن طريق معرف جلسة العمل. هذه صعبة قليلاً لإنجاز (إلا إذا فاتني شيء حقيقي واضح).

يمكنك بسهولة إنشاء طريقة عرض تمت تصفيتها عرض الأحداث في ذلك اليوم فقط. التقويم وسوف تظهر جميع تلك الأحداث ولو أنهم جميعا تجري في نفس الساعة, وهو يسرد لهم جنبا إلى جنب في فتحه ساعة. عظيم. الجزء الصعب أن, بشكل افتراضي, أنه يريد أن قائمة لهم في تنسيق معرف. حتى, إذا كان لي أن أضيف "الدورة 02" ومن ثم "الدورة 01" للتقويم, يبين لهم في هذا النظام (الأول-هاء, الدورة 02 ومن ثم الدورة 01). أن قائمة لهم في ترتيب "معرف جلسة العمل", وأعتقد أن محاولة هذه الأشياء:

  1. تكوين طريقة العرض باستخدام واجهة المستخدم على ويب. لا حظ. لا توجد خيارات لفرز العناصر بهذه الطريقة.

    وبما أنه لم ينجح, وأنا الآن أمل هناك هو استعلام CAML في مكان ما من هناك والتي تسمح لي بتجاوز الفرز. كقوب تسمح لي بتقديم هذا النوع من تغيير, ربما سيكون التقويم كذلك?

  2. تحرير جزء ويب, ابحث عن "تصدير" الدالة و … بزززت! تعذر تصدير XML به. لا يوجد أي خيار تصدير.

    أنا لا يزال يحمل أملا أن أستطيع إيجاد وتعديل بعض الاستعلام CAML. نظراً لتعذر تصدير جزء ويب, أن يترك مصمم SharePoint.

  3. إضافة جزء ويب "التقويم" إلى موقع رمل، وفتح هذا الموقع باستخدام "مصمم SharePoint". وأتطلع في العلامات لجزء ويب واجد ما ابحث عنه. قد ترميز الجنون, ولكن كان هناك: "<ليستفيوكسمل …. >الجنون المشفرة</ليستفيوكسمل>". على وجه التحديد, توجد هذه الأحجار الكريمة:

<الاستعلام>
<حيث>
<داتيرانجيسوفيرلاب>
<اسم FieldRef = "افينتداتي"/>
<اسم FieldRef = "EndDate"/>
<اسم FieldRef = "ريكورينسيد"/>
<نوع القيمة = "التاريخ والوقت">
<الشهر/>
</القيمة>
</داتيرانجيسوفيرلاب>
</حيث>
<OrderBy><اسم FieldRef = "Session_x0020_ID" /></OrderBy>
</الاستعلام>

(أنا لقد فك الشفرة &الملازم;في و &في جي تي وتقسيمها إلى إلى أسطر متعددة للوضوح).

إضافة <OrderBy> بت والآن فإنه يفرز "معرف جلسة العمل", غير معرف عنصر القائمة الداخلية.

O نصيحة العملاق’ القبعة إيسيرمان بيكي لتعليق لها على بلوق وظيفة العشاء ساغي: http://www.sharepoint-tips.com/2008/07/caml-sorting-by-file-name.html. لن أضع <OrderBy> في المكان المناسب دون تعليق لها.

ويحدوني الأمل في كتابة هذا أكثر وضوحاً مع قطات الشاشة قريبا, ولكن في حالة ابدأ أن تفعل, على الأقل أنا فعلت هذا بكثير.

</نهاية>

[تشنورتي] بطاقات: , , ,

ميزات SharePoint & إدارة الحلول — لا تنسى يو في الخام (أو مد لهذا الموضوع)

ونحن مجتمعة تنفق قدرا كبيرا من الوقت في التفكير حول الحلول SharePoint — كيفية إنشائها, أي أداة استخدام, ماذا يحدث عندما فشلوا في نشر, وظائف جهاز ضبط الوقت, نطاقات, إلخ. نحن ننفق الكثير وقت التفكير في بت مقدما أنه من السهل أن ننسى أننا بحاجة إلى سحب منهم، فضلا عن. التراجع الحلول ربما أكثر صعوبة, من منظور تصميم النظري, من نشرها. النشر في الأساس علاقة الطبخ. عادة, تثبيت ميزة, ربما يكون متلقي ميزة تحميل بعض البيانات في قائمة, هذا النوع من الشيء. ومع ذلك, التراجع يحتمل أن تكون أكثر تعقيداً.

يمكن إنشاء حل معين التحف مثل هذه:

  • نوع المحتوى
  • تعريف قائمة
  • تعريف الموقع
  • البيانات في قائمة
  • حتى أجهزة الاستقبال
  • نماذج InfoPath

والقائمة تطول.

وفي حين أنه من المهم ومن الواضح أن تصميم حل أن instantiates تلك التحف بشكل صحيح, نفس القدر من الأهمية النظر في التحديث وحذف الحالات. إذا كان الحل الخاص بك يقوم بإنشاء قائمة جديدة ويقوم بملء هذه القائمة مع البيانات, ماذا يحدث عندما يتم سحب الحل? وفي بعض الحالات, ينبغي حذف قائمة. وفي حالات أخرى, وينبغي أن يترك سليمة لأغراض تاريخية. متطلبات العمل الخاص بك سيتم إرشادك إلى القرار الصحيح.

للمساعدة في هذا, إنشاء مصفوفة يسرد كل قطعة أثرية بنشر الحل الخاص بك إلى SharePoint. قائمة الأعمدة الثلاثة لكل قطعة أثرية, واحدة لإنشاء, التحديث والحذف. لكل حالة على حدة, تحديد النتيجة الصحيحة لهذه العملية.

ومن الواضح أن من الأفضل القيام هذا النوع من التحليل قبل نشر الحل من أي وقت مضى إلى مزرعة SharePoint. ومع ذلك, مثل التدخين, لم يفت الأوان بعد البدء في القيام بالأشياء بشكل صحيح. إنشاء هذه المصفوفة، ووضع خطة لمواجهة سيناريوهات تحديث/حذف مفقود. فقد تكون مشكلة الثابت لحل, ولكن على الأقل كنت قد وضعت مربع حول المشكلة.

</نهاية>

الاشتراك في بلادي بلوق.

اتبعني على التغريد في http://www.twitter.com/pagalvin

[تشنورتي] بطاقات:

حل سريع: خدمات أن تتفاعل مع SharePoint على ويب, InvalidOperationException

1 مليون سنة مضت, لقد ساعدت تطوير خدمة ويب الذي تم استدعاؤه عبر إجراء مخصص لسير عمل SharePoint Designer. هذا الأسبوع, العميل مطلوبة لنقلها إلى الإنتاج (وأخيراً!) ولذا فإننا لم.

إجراء مخصص يعمل بشكل جيد, ولكن لم كان استدعاء خدمة ويب, منحنا هذا الخطأ:

System.InvalidOperationException: يمكن تنفيذ هذه العملية فقط على كمبيوتر الذي انضم إلى تكتل الملقمات بواسطة المستخدمين الذين لديهم أذونات في SQL Server القراءة من قاعدة بيانات التكوين. للاتصال هذا الملقم إلى تكتل الملقمات, استخدام معالج تكوين تقنيات ومنتجات SharePoint, الموجود على القائمة "ابدأ" في "أدوات إدارية".
في Microsoft.SharePoint.Administration.SPWebApplication.Lookup(أوري ريكويستوري)

تبين أن نسيت لإضافة الخدمة إلى SharePoint تجمع التطبيقات في IIS. مرة واحدة فعلت ذلك, عملت غرامة.

نشر المنتدى MSDN هذا أعطاني فكرة كنت بحاجة: http://social.msdn.microsoft.com/Forums/en-US/sharepointdevelopment/thread/2c97c004-7118-4e06-a62c-b2b0ac07ac99

</نهاية>

الاشتراك في بلادي بلوق.

لي على متابعة التغريد: http://twitter.com/pagalvin

[تشنورتي] بطاقات:

سريعة وسهلة: الحصول على سبفولدير سبيتيمليست

الحفاظ على تشغيل إلى هذه المشكلة، ويبدو جوجل ابدأ فهم ما تريد القيام به, فكنت احسب أن كتابة من هذا.

لقد تم القيام بالكثير لاستقبال الحدث التصحيح في الأسبوع الماضي أو اثنين. يتم تعريف لائحة ضد مكتبة المستندات. أحكام تتصل بالعناصر الفردية في مكتبة المستندات المجلدات الأصل الخاصة بهم. حتى, أنا دائماً الحصول على المجلد من هذا البند للمعالجات المختلفة. أثناء التصحيح, كنت بحاجة إلى تحديث بيانات التعريف من مجلد لعنصر معين له معرف أنا أعرف.

وإليك قليلاً من تطبيق وحدة التحكم (مصمم للتشغيل على خادم في المزرعة) التي تأخذ الوسائط اثنين: معرف عنصر، وقيمة لتعيين لحقل, "حالة الموافقة". وهو الثابت رموز الكثير من الأشياء ولا تدقيق الأخطاء.

تبدو التعليمة البرمجية موقع جد المبرمج, يحصل على مكتبة مستندات جد مبرمج ويجد ثم البند المشار إليه. ثم يرى المجلد الأصل لهذا البند، ويقوم بتعيين قيمة الحالة.

الدرس الرئيسي هنا بالنسبة لي أن سبيتيم لا تحصل على حق الوصول إلى المجلد. أنت بحاجة إلى استخدام SPListItem.File.

إذا كان أي شخص يهتم لتقديم نقد أو تشير إلى طريقة أفضل للحصول على المجلد لعنصر, يرجى ترك تعليق.

<التعليمات البرمجية>
استخدام نظام;
استخدام System.Collections.Generic;
استخدام System.Text;
استخدام Microsoft.SharePoint;
استخدام System.Collections;

مساحة الاسم كونتشانجو
{
    /// <موجز>
 /// </موجز>
 فئة مانوالفولديروبداتي
    {
        ثابت باطلة الرئيسية(السلسلة[] وسائط)
        {
            السلسلة مش = "مانوالفولديروبداتي (v1.0): "; // مش = "رأس الرسالة"

 وحدة التحكم.WriteLine(مش + "بدء تشغيل.  أنا كان آخر تعديل في 04/08/08.");

            السلسلة url = http://localhost/xyzzy;

            استخدام (SPSite أوسبسيتي = الجديد SPSite(عنوان url))
            {

                استخدام (SPWeb أوسبويب = oSPSite.OpenWeb())
                {
                    سبليست مكتبة مستندات = oSPWeb.Lists["وثائق"];

                    وحدة التحكم.WriteLine(مش + "حصلت على مكتبة المستندات.");

                    وحدة التحكم.WriteLine(مش + عدد العناصر lib doc ": [" + docLib.ItemCount + "].");

                    int FolderID = 0;
                    السلسلة نيوستاتوس = "xyzzy";

                    FolderID = النظام.تحويل.ToInt32(وسائط[0].ToString());
                    وحدة التحكم.WriteLine("تسعى إلى المجلد للبند: [" + FolderID + "].");

                    سبليستيتيم لي = docLib.GetItemById(FolderID);

                    سبفولدير ثيسيتيمفولدير = لي.File.ParentFolder;

                    وحدة التحكم.WriteLine(مش + "حصلت على المجلد الأصل.");

                    نيوستاتوس = args[1].ToString();
                    وحدة التحكم.WriteLine("تعيين الحالة إلى [" + نيوستاتوس + "].");

                    وحدة التحكم.WriteLine("العودة ارتكاب التحديث أو CTRL-C إحباط الصحافة.");

                    وحدة التحكم.ReadLine();

                    thisItemFolder.Item["حالة الموافقة"] = نيوستاتوس;
                    thisItemFolder.Item.Update();

                    وحدة التحكم.WriteLine(مش + "الانتهاء من تحديث المجلد.  تخرج منها.");

                } // استخدام SPWeb

            } // استخدام SPSite

 وحدة التحكم.WriteLine(مش + "انتهى.");

        } // الرئيسية

    } // فئة فولديرسينك
} // مساحة الاسم
</التعليمات البرمجية>

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات:

إخفاء إجراءات مخصصة في SharePoint

قبل عدة أشهر, بينما كان يعمل في مشروع لعميل, خلق ميزة. أمور أخرى, أن الميزة تحديد إجراء مخصص (تظهر هذه تحت إعدادات الموقع). وكان الغرض الوحيد لهذا الإجراء المخصص تبين لي أن تنشيط ميزة تعمل كما هو متوقع. أساسا, تستخدم كشكل النفط خام لتصحيح الأخطاء.

الكثير من الأحراج بلدي, هذه القطع الأثرية التصحيح شقت طريقها من ديف ضد التعذيب والإنتاج قبل شخص ما يحصل في جميع أنحاء ليسأل, "ما هو هذا الارتباط xyzzy?"

الآن, نحن في الإنتاج، وحقاً لا تريد إلغاء تثبيت الميزة, إصلاح عناصر. xml وقم بإعادة تثبيت.

تود أكثر كآبة وأشار إلى طريقة سهلة للتعامل معها. في كلماته:

"كوستوماكشنز لا يتم نسخها إلى قاعدة البيانات, فهي قراءة من ملف عناصر. xml مباشرة ونسخها في حالة التطبيق في وقت التشغيل. حتى, لا تحتاج إلى تنشيط, إلغاء تثبيت, إعادة تثبيت, وإعادة تنشيط الميزة إزالة CustomAction. فقط قم بإزالتها من ملف عناصر. xml وسلة تجمع التطبيقات(s) تنفذ. في المرة القادمة الميزة في نطاق, لن تشاهد CustomAction بعد الآن."

لقد اتبعت تعليماته و, طبعًا, أنها تعمل.

في حالتي, هذا تثبيت مستوى إدارة مع WFE واحدة فقط. إذا كنت تجد نفسك مع هذه المشكلة في المستقبل، ومع عدة WFE, وأعتقد سيكون لديك لإجراء التغيير في كل.

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات: ,

حل سريع: الوصول إلى موقع SharePoint يرمي [هتبيكسسيبشن (0x 80004005): انتهاء مهلة الطلب.]

واحد من زملائي المطور وكان يعمل في مشروع هذا الأسبوع وواجهت مشكلة مهلة أثناء العمل على بناء بعض أجزاء ويب مجنون. جزء ويب الذي كان على ما يرام, لكن "فجأة" موقع لا علاقة لها أصبحت بطيئة جداً وكثيراً ما انتهت مهلة مع هذا الخطأ:

[هتبيكسسيبشن (0x 80004005): انتهاء مهلة الطلب.]

تسجيل الدخول، ورأى أن عدة مواقع أخرى كانت على ما يرام. يشتبه في أن هناك بعض أجزاء ويب مخفية على الصفحة واستخدام مضمونة ?محتويات = 1 التصحيح الأسلوب, أجد في الواقع 11 أجزاء ويب على صفحة, اثنين فقط من التي كانت مرئية. ما هو أفضل (من منظور let's-hope-I-find-something-ugly-here-that-I-can-fix), ثلاثة أجزاء ويب المغلقة وكان اسم "خطأ".

قمت بحذف أجزاء ويب (الذي استغرق وقتاً طويلاً من المستغرب) وأن تحل المشكلة. For today 🙂

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات:

استدعاء خدمات الويب SSRS من WSS / موس في البيئة FBA

أننا بحاجة إلى استدعاء كريتيسوبسكريبشن "" أسلوب خدمة ويب SSRS التي يتم استضافتها في FBA إدارة البيئة الطحلب من جزء ويب مخصص. نحن ظللت الحصول على أشكال مختلفة من:

  • 401: غير مخول
  • نقل الكائن

الكائن "نقل" كانت الرسالة الأكثر إثارة للاهتمام نظراً لأنه كان يقول أن الكائن "" (خدمتنا SSRS) وكان "نقل" إلى login.aspx. وهذا يعني وضوح كان لدينا نوع من مشكلة مصادقة.

أدركت في نهاية المطاف أن كان لي إشارة مرجعية بلوق الدخول بروبرت جاريت أن وصف كيفية استدعاء خدمة ويب WSS/موس أغراض عامة الذين يعيشون داخل بيئة FBA. علما بأن أنا لا يمكن ربطه مباشرة المادة (كمن 06/09/08) لأنها ترغب في مصادقة. يجلب لك الارتباط الأول تقدم جميع وظائف "" عرض ويمكنك يمكن تحديد موقع المادة المحددة عن طريق البحث عن "الوصول إلى خدمات ويب موس باستخدام مصادقة النماذج استناداً إلى".

هنا هو التعليمات البرمجية التي عملت بالنسبة لنا:

ReportingService2006 rs = null; 
// مصادقة مصادقة مصادقة = الجديد مصادقة(); 
المصادقةUrl = "http://URL/_vti_bin/Authentication.asmx";
المصادقةCookieContainer =
الجديد CookieContainer();
نتيجة لوجينريسولت = المصادقةتسجيل الدخول("معرف المستخدم", "كلمة المرور");
إذا كان (نتيجة لذلك.رمز الخطأ = = LoginErrorCode.NoError) 
{
// لا يوجد خطأ, حتى تحصل على ملفات تعريف الارتباط.
ملفات تعريف الارتباط كوكيكوليكشن = المصادقةCookieContainer.GetCookies(الجديد أوري(المصادقةعنوان Url));
كوكي أوثكوكي = ملفات تعريف الارتباط[نتيجة لذلك.كوكينامي];
rs =
الجديد ReportingService2006();
روبية.Url =
"http://server/_vti_bin/ReportServer/ReportService2006.asmx";
روبية.CookieContainer =
الجديد CookieContainer();
روبية.CookieContainer.Add(أوثكوكي);
}
حاول
{
  روبية.كريتيسوبسكريبشن(تقرير, اكستسيتينجس, تنازلي, eventType, ماتشداتا, parameters1);
}
الصيد (استثناء ex)
{
  Console.WriteLine(السابقين.Message.ToString());
}

أنني أفسر الأمور مثل هذا العمل:

  • جزء ويب لدينا بحاجة إلى الطلب الهاتفي خدمة المصادقة وأقول, "يا, توني, لي!".
  • مصادقة خدمة الردود قائلا, "يا, وأنا أعلم أنك. كيف هم الأطفال? هنا رمز مميز."
  • ونحن استدعاء الخدمة SSRS وأقول, "توني أرسلت لي, هنا هو الرمز المميز."

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات: , ,

سريعة وبسيطة: توفير موقع ويب باستخدام طراز كائن SharePoint في C#

حاولت البحث عن التعليمات البرمجية المتكررة قليلاً تظهر كيف يمكن إنشاء SPWeb جديدة في مجموعة الموقع. لم يجد بسرعة أو بسهولة كما هو متوقع حتى ظننت أن صفعة معا الدخول قليلاً في هذا الموضوع.

هذه التعليمات البرمجية بإنشاء موقع Wiki جديد:

 SPSite siteCollection;

    siteCollection = الجديد SPSite("http://كونتشانج-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("xyzzy", "xyzzy العنوان",
        "وصف xyzzy", 1033, سبويبتيمبلاتي.ويبتيمبلاتيويكي, كاذبة, كاذبة);

فشل عمليات البحث الأولية بلدي لأنني كنت ابحث عن عبارات مثل "توفير موقع ويب باستخدام طراز كائن sharepoint" وما شابه ذلك.

إذا كنت البحث أجل "Webs.Add()", ستجد عدد من مداخل بلوق مفيدة جداً, المقالات MSDN ووثائق SDK أن التعمق في هذا الموضوع. أوصى بالتأكيد هذا الموقع.

</نهاية>

الاشتراك في بلادي بلوق.

[تشنورتي] بطاقات: