المحفوظات الشهرية: أيار/مايو 2011

PerformancePoint والخطأ 33494

أحد موكلي يسمى اليوم عندما بيئتها PerformancePoint (في SharePoint 2010) وانهارت.  كان يسير أحد الملقمات التطبيق في المزرعة منخفض على مساحة القرص.  وفي كلمته التي, العميل إلغاء تثبيت "الكثير" وتوقف جميع الأشياء صفحة سير عمل.  سوف تظهر مختلف أجزاء ويب "حدث خطأ غير متوقع. خطأ 33494. لقد تم تسجيل تفاصيل إضافية لمدير البرنامج الخاص بك ":

image

البحث عن الخطأ، ولم تجد أي شيء محدد "خطأ 33494" ولكن هذه المنتديات MSDN نشر كان مفيداً: http://social.technet.microsoft.com/forums/en-us/sharepoint2010setup/thread/E1FE189D-7F89-455D-A98B-C1A12D8626AB

لقد وجدت أدومد.صافي هنا كمكون في ملقم SQL 2008 حزمة ميزات: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=228DE03F-3B5A-428A-923F-58A033D316E1&displaylang=en

image

(انقر للتكبير)

أنا تنزيل وتثبيت وهو إصلاح كل شيء.

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

</نهاية>

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

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

Lists.asmx, جيتليستيتيمس والمجلدات

كنت تفعل بعض البحوث لشخص اليوم حول خدمة ويب list.asmx وقدمت كجزء من SharePoint 2010 (وقبل ذلك).  وقالت أنها كانت قادرة على الحصول على قائمة العناصر الموجودة في المجلد الجذر (بما في ذلك أسماء المجلدات الفرعية), ولكن لم أستطع الحصول على العناصر الموجودة في المجلدات الفرعية.  فعلت بعض حولهم على الإنترنت وأنها ليست مسألة مشتركة مما يثير الدهشة.  بعد, لم أستطع الحصول على رد جيد على سؤال بسيط, "لو أعرف المجلد, كيف يمكنني الحصول على العناصر في مجلد?”  أن نكون صادقين, لم يحاول كل ما جد منذ كنت أريد أن الرقم هذا أحد الخروج بمفردي لفترة من الوقت ابتسامة.

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

  • السنة 2005
  • السنة 2006
  • السنة 2007

أضفت بعض العناصر إلى المجلد "العام 2006".  وهذا ما يبدو:

image

صديقي ليس كتابة التعليمات البرمجية C# ولكن بدلاً من ذلك باستخدام Java, هكذا كان مغلف SOAP ما أنها في حاجة حقا.  للحصول على ذلك, كتب قليلاً من jQuery، وثم استخدم fiddler للحصول على محادثة HTTP الفعلية.

هنا هو jQuery ذات الصلة (نسخ التعليمة البرمجية إلى الأسفل أدناه إذا كنت تريد نسخ/لصق):

image

أنها المفتاح الأول أن تشمل كلا <كويريوبشنز> و <كويريوبشنز> العقدة.  المفتاح الثاني أن <المجلد> العقدة هو عنوان URL الذي يملك العميل حق الوصول.

قد تكون هناك طرق أخرى للحصول على هذا, ولكن هذا عمل جيد بالنسبة لي عند استخدام jQuery.

هنا هو مغلف SOAP المذكورة أعلاه:

<سوابينف:Xmlns المغلف:سوابينف =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <سوابينف:الهيئة>
    <Xmlns جيتليستيتيمس =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>قائمة مخصصة مع المجلدات الفرعية</listName>
      <فيوفيلدس>  
        <فيوفيلدس>
          <اسم فيلدريف = ' العنوان’ />
          <اسم فيلدريف = ' انكوديدابسورل’ />
        </فيوفيلدس>
      </فيوفيلدس>
      <كويريوبشنز>
        <كويريوبشنز>
          <المجلد>
http://demoserver1/المدونات قائمة السيناريوهات/قوائم/مخصص مع الفرعي مجلدات/عام 2006</المجلد>
        </كويريوبشنز>
      </كويريوبشنز>
   
</جيتليستيتيمس>
  </سوابينف:الهيئة>
</سوابينف:مغلف>

كثير من الأمثلة والمناقشة حول هذا قادني إلى الاعتقاد بأن كل ما أحتاج <كويريوبشنز> وحدد اسم مجلد.  بالنسبة لي, أنا بحاجة إلى كل الانتهاء من ذلك داخل <كويريوبشنز> فضلا عن تحديد عنوان URL مؤهل بشكل كامل <المجلد> عقده.

وإليك الإعداد أياكس jQuery:

$(الوثيقة).استعداد(الدالة() {
       فأر سوابينف =
           "<سوابينف:Xmlns المغلف:سوابينف =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <سوابينف:الهيئة> \
                    <Xmlns جيتليستيتيمس =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>قائمة مخصصة مع المجلدات الفرعية</listName> \
                       <فيوفيلدس> \
                           <فيوفيلدس> \
                              <اسم فيلدريف = ' العنوان’ /> \
                              <اسم فيلدريف = ' انكوديدابسورل’ /> \
                          </فيوفيلدس> \
                       </فيوفيلدس> \
                       <كويريوبشنز> \
                         <كويريوبشنز> \
                           <المجلد>http://demoserver1/Blogging قائمة السيناريوهات/قوائم/مخصص مع الفرعي مجلدات/عام 2006</المجلد> \
                         </كويريوبشنز> \
                       </كويريوبشنز> \
                   </جيتليستيتيمس> \
               </سوابينف:الهيئة> \
           </سوابينف:مغلف>";

</نهاية>

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

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

أنماط سير العمل الاشتراكي, نصائح والخدع

أعطى بلدي عرض اليوم في مهرجان SharePoint في دنفر. هنا هو نفس العرض التقديمي ل PowerPoint: http://www.mstechblogs.com/paul/wp-content/uploads/2011/05/SharePointFest.pptx

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

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

Lists.asmx, جيتليست و "لا يمكن أن تكون القيمة فارغة”

اكتشفت اليوم أن جيتليست() الأسلوب في lists.asmx قد خدمة ويب ليتم استدعاؤها بعناية شديدة أو أنها عرضه لرمي غامض "لا يمكن أن تكون القيمة null" الاستثناء (وهذا هو افتراض يمكن أن تحصل في الماضي رسالة خطأ عامة أكثر سوءا, "استثناء من نوع' Microsoft.SharePoint.SoapServer.SoapServerException’ وقد ألقيت. ")  على وجه التحديد, لقد وجدت أن كنت لا توفر أي نوع من بادئة على الأسلوب جيتليست.  مسج المقتطف التالي يوضح هذه النقطة:

image

إذا كنت تفعل ذلك, تستجيب خدمة ويب مع "لا يمكن أن تكون القيمة null" وفقا لهذا fiddler-قدمت نسخة HTTP:

<?إصدار xml = "1.0" ترميز = "utf-8"?>
  <الصابون:مغلف
     xmlns:صابون ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <الصابون:الهيئة>
    <الصابون:خطأ>
      <فاولتكودي>الصابون:خادم</فاولتكودي>
      <فولتسترينج>
        استثناء من نوع ' Microsoft.SharePoint.SoapServer.SoapServerException’ وألقيت.
      </فولتسترينج>
      <التفاصيل>
        <ارورسترينج xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
لا يمكن أن تكون القيمة فارغة.
        </ارورسترينج>
      </التفاصيل>
    </الصابون:خطأ>
  </الصابون:الهيئة>
</الصابون:مغلف>

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

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

image

وهذا "لا يمكن أن تكون القيمة null" يبدو شائع إلى حد كبير مع lists.asmx لذا نأمل أن هذا سوف يساعد شخص بها في المستقبل.

</نهاية>

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

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

تداخل بلا نهاية <div> JQuery والعلامات

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

أنني أعمل على مشروع حيث أنا أشعر بسحب بعض البيانات من البحث, التعبئة والتغليف أنها إلى رسالة XML، ومن ثم أن XML في النهاية تتحول إلى HTML عن طريق XSLT.  هناك الكثير من مسج, بت واحد من الذي يقوم بتنفيذ بعض وظائف الجدولة.  عند النقر فوق علامة تبويب (حقا, أ <div>), مسج استدعاء.hide() و.show() على مختلف divs (تحميل الصفحة الأولى تحميل كافة المحتويات حتى تكون هناك ليست إعادة النشر في هذه الحالة).

حفنة من قبل ساعات, علامة التبويب التبديل بين منطق بدأت تتصرف بطريقة متقطعة، وأنها لن تظهر إحدى علامات بلدي.  أنا في نهاية المطاف تعقب ذلك وصولاً إلى الحقيقة أن برنامج internet explorer (على الأقل) ويعتقد أن <div> العلامات المتداخلة الآن, أعمق بكثير من المقصود.سوف يظهر شريط أدوات المطور:

-<div معرف = "Tab1Content">
  -<div>
    -<div>
      -<div معرف = "Tab2Content">
        -<div>
           …………………………
                   </div>  <-وأخيراً تبين أنها قد أغلقت طوال الطريق هنا!

حتى, إذا فعلت $("# Tab1Content").إخفاء(), أنا أيضا إخفاء Tab2 ويمكن أن تظهر ابدأ Tab2 إذا لم أكن أود أيضا أن تظهر Tab1.  نسخ، ولصق التعليمات البرمجية في visual studio، وأنها أظهرت كل من بطانة div يصل لطيف, مثلما كان من المفترض أن تقوم به, يبحث مثل هذا:

-<div معرف = "Tab1Content">
  +<div>
  +<div>
-<div معرف = "Tab2Content">
  +<div>
  +<div>

ضرب رأسي بالحائط لفترة من الوقت، ولاحظ أن التعليمات البرمجية بلغة HTML الفعلي كان توليد الكثير من فارغة <div> العلامات, مثل:

<الهيئة>

  <div معرف = "Tab1Content">

    <div معرف = "row1"/>
    <div معرف = "row2"/>

  </div>

  <div معرف = "Tab2Content">

    <div معرف = "row1"/>
    <div معرف = "row2"/>

  </div>

</الهيئة>

(ما ورد أعلاه واااااااااااي التبسيط.  علامات div فارغ صحيحة تماما. بعض من بلادي <div> العلامات كانت مليئة بالمحتوى, ولكن الكثير لم تكن.  جئت للتحقيق ذلك بلدي <xsl:لكل> توجيهات كانت تلويثاً القصيرة-الشكل علامات div عند xsl:لم أكن لكل ' العثور على أية بيانات.  أنا يجبرن على تعليق HTML الإخراج, كما هو موضح:

image

 

بعد أن فعلت ذلك, جميع div اصطف لطيف وبلدي التبويب التحول بدأ العمل.

كما هو الحال دائماً, أمل أن يساعد هذا شخص في السؤال.

</نهاية>

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

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

حل سريع: "اسم نوع المحتوى '$ Resources:ريبورتسيرفيريسورسيس … لا يمكن أن تحتوي على … أحرف خاصة”

كنت تنفق بعض الوقت تنظيف SharePoint 2010 الموقع وواحدة من القضايا "تنظيف" تتعلق بملف / تثبيت مسألة خدمات تقرير SQL Server بشكل غير صحيح.  المشكلة نشأت عندما حاول أحد زملائي حفظ موقع كقالب، ثم قم بإنشاء إنشاء موقع جديد يستند إلى ذلك القالب.  حفظ العملية تعمل بشكل جيد, ولكن عندما حاولت إنشاء موقع جديد, SharePoint عرض رسالة الإعلام بالخطأ التالية:

خطأ

اسم نوع المحتوى '$ Resources:ريبورتسيرفيريسورسيس,داتاسورسيكونتينتيبينامي;' لا يمكن أن تحتوي على: \ / : * ? “ # % < > { } | ~ & , فترتين متتاليتين (..), أو أحرف خاصة مثل علامة تبويب.

هنا غطاء الشاشة:

 

image

كان نظرة على أنواع المحتوى في الموقع، ووجدت أن هذا:

image

أنواع المحتوى هذه بوضوح غير صحية.

هذه المسألة يبدو أن الخروج كثيرا على الإنترنت، وهناك لا يبدو أن يكون واحد توافق في آراء حول كيفية حل هذه المشكلة.  لقد وجدت جدول مفيد أن تعيين أسماء نوع المحتوى غير صالحة لنوع محتوى جيد الأسماء هنا: http://social.technet.microsoft.com/Forums/en-ZA/sharepoint2010programming/thread/cb03e866-8184-4943-acfe-cafffa1b8b7a.  أنا يدوياً حدثت لهم هكذا:

image

(برايتستار في الاسم أمرا اختيارياً ومن الواضح أن, ولكن لا يمكن أن يصب ابتسامة )

وهذا يسمح لي إنشاء قالب جديد ولم يكسر أي شيء على مواقع أخرى, بما في ذلك بعض الأشياء PerformancePoint Server الذي تعمل به مجموعة مختلفة تماما من الناس.  وكنت آنذاك قادرة على إنشاء موقع جديد على القالب.  النجاح!

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

</نهاية>

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

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

سبب واحد عن "منشئ هذا الخطأ لم يحدد سبب.”

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

إذا كنت ترغب في مجموعة النتائج إلى إرجاع نتائج تتجاوز مشبوهون (انظر هنا), يمكنك إضافته إلى مجموعة سيليكتيدبروبيرتيس, كما هو الحال في:

myKeywordQuery.SelectProperties.Add("xyzzy");

شكرا جزيلا ونصيحة من القبعة روث كوري و هذه الوظيفة مفيدة جداً بلوق (http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2008/02/19/how-to-use-the-moss-enterprise-search-keywordquery-class.aspx)

في حالتي, "xyzzy" ليست فعلا خاصية مدارة.  عندما أضفت إلى سيليكتيدبروبيرتيس على أي حال, ألقي SharePoint واحد من بلدي المفضل استثناءات من أي وقت مضى في وقت التشغيل:

"منشئ هذا الخطأ لم يحدد سببا".

أنا لا سيما مثل العاصمة "R" في السبب.  هذا يبدو لي وكأنه ما يعادل.net "ليس لدى أي الفم, وأنا يجب أن تصرخ.”

</نهاية>

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

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

مرجعي: النتائج الافتراضية من البحث كييووردكويري

عندما قمت باستدعاء تنفيذ() الأسلوب في كييووردكويري, يمكنك إنشاء ريسولتابل أساس ResultType.RelevantResults.  هذه التعليمات البرمجية المتكررة ويوضح ما أعنيه:

ريسولتستابليكولكشن ريسولتابليكوليكشن = myKeywordQuery.Execute();

سيرتشريسولتستابل ريسولتابل = ريسولتستابليكولكشن[ResultType.RelevantResults];

وسوف يكون الجدول الناتج الأعمدة التالية من المعلومات: 

معرف العمل
رتبة
العنوان
الكاتب
حجم
مسار
وصف
الكتابة
اسم الموقع
كولابسينجستاتوس
هيثيغلايتيدسوماري
هيثيغلايتيدبروبيرتيس
كونتينتكلاس
إيسدوكومينت
بيكتوريثومبنايلورل
سيرفيرريديريكتيدورل

أنا تتأتى هذه القائمة SharePoint 2010 البيئة, enterprise edition.  نأمل أنه سيكون سهل لشخص ما في المستقبل.

</نهاية>

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

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

واحد أسباب: "فشل في استخراج ملف cab في الحل”

أثناء العمل على جزء ويب visual studio المشروع اليوم, فعلت re-ات طفيفة لبعض الملفات لوضع تكون في المجلد _layouts كجزء من عملية نشر. على وجه التحديد, أنا إعادة تسمية ملف. js من "TypeAhead.js" إلى "TypeAhead(القديمة).شبيبة "  أخطط لإزالة فإنه حالما يثبت خلفه "TypeAhead.js" الصحيح.  أنه يشبه هذا:

image

هذا بسبب وجود مشكلة مع visual studio فورا عندما حاولت نشر المشروع:

حدث خطأ في توزيع الخطوة '"إضافة الحل"': فشل استخراج ملف cab في الحل.

وتبين أنه يجب عليك عدم وضع قوس في أسماء الملفات.  أزلت حكم أن تحل المشكلة.

</نهاية>

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

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