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

HTTP 406 خطأ عند استخدام $http.get الزاوي ضد SharePoint بقية نقاط النهاية

التحديث: وأشار مارك AD نديرسون هذا قطعة كبيرة من المعلومات: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. وهذا ما يفسر الكثير :).

قد يكون عنوان بلوق وظيفة أسوأ من أي وقت مضى! Anyhoo.

عادة القيام به كل من بلدي النماذج ضد مثيل O365. لدى بلدي مثيل شخصية حتى أن ليس لدى لأن تشعر بالقلق إزاء التأثير على أي شخص آخر. بوصفها جانبا--تذكر عندما ندعو يجري حول الأجهزة الظاهرية على كمبيوتر محمول لدينا مع موس – SQL Server, IIS, البت مقابل هايبر-V. أم وير? Anyhoo...

وكان البلدان المتقدمة النمو إلى تطبيق استخدام الزاوي في هذه البيئة أن يفعل, أمور أخرى, وهذا:

$http.get(سيرفيرورل)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

getLinksResponse.value.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

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

قبول: تطبيق/json

لكن مثيل كلودشاري (وهو س في بريم, واستضافت في ملقم ظاهري) أراد الكلاسيكية "odata = مطول" وأضاف كذلك في:

قبول: تطبيق/json;odata = مطول

لحل هذه المشكلة, وأضاف نحن الرأس على هذا النحو:

التكوين فأر = {رؤوس: {
'قبول': ' التطبيق/json;odata = مطول '
}
};

$http.get(سيرفيرورل,التهيئة)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

getLinksResponse.value.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

التي حصلت على التخلص من 406, بل أنه أيضا تغيير تنسيق الاستجابة. أنه كان أكثر.. مطول. (هاها!) تم إدخال مزيد من التغييرات المطلوبة، وهنا هو النتيجة النهائية:

التكوين فأر = {رؤوس: {
'قبول': ' التطبيق/json;odata = مطول '
}
};

$http.get(سيرفيرورل,التهيئة)
.النجاح(الدالة(البيانات, مركز, رؤوس, التهيئة) {

var جيتلينكسريسبونسي = البيانات;

جيتلينكسريسبونسي.d.results.forEach(الدالة(ثيريسولت) {

// وهكذا، وحتى زبد

وهذا فقط تحولت 30 مشكلة دقيقة بالنسبة لنا, لذا نحن حالفه. نأمل شخص ما يجد هذا مفيدة.

</نهاية>

الوعي المتزايد / اعتماد الأطر جافا سكريبت

زميلي, جواد الأنصاري (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), كتب قصيرة موجزة بلوق وظيفة في أطر أنه يحب، أو على الأقل قد تم استخدام مع SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

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

ما هي استخدام الناس? أنها ركزت أكثر على الأدوات في Microsoft (CSOM / جسوم) أو تتحرك أكثر تجاه الزاوي, خروج المغلوب, يعيرها, إلخ?

لدى انحياز متزايد في هذه الأطر غير التابعة ل Microsoft. أعتقد أن الأشياء MSFT أكثر صعوبة وأكثر صعوبة العمل مع, تتطلب تقريبا نفس القدر من منحنى التعلم كالطراز القديم الخادم ديف.

مرحلة ما بعد تعليق هنا أو ما يزيد على SharePoint التفاحة الكبيرة إذا كنت ترغب في مناقشة (التفاحة الكبيرة سيكون لها أكثر من احتمال لمناقشة جيدة).

</نهاية>

الغزل وظائف عداد الوقت في SharePoint من موقع مجموعة التكوين

زميلي, اشيش باتيل, كتب بلوق وظيفة تصف بنية وظيفة الموقت مرنة أن يتيح بعض المرونة لطيفة لدعم مهام تشغيلها لفترة طويلة و/أو تقارير.  في كلماته:

1. تحليل محدد من الملفات، وإرسال رسائل تذكيرية إلى الأفراد إذا كان الرقم من أيام (حيث تم سحب الملف) تتجاوز حدود عتبة معينة

2. إزالة الارتباطات من المحتويات الأخرى عند هو إزالة محتوى معين أو أرشفتها من النظام

3. يريد المستخدم لمشاهدة جميع التنبيهات التي قال أنه اشترك في كافة صفحات ويب في مجموعة الموقع

4. إرسال رسائل تذكيرية مؤلفين ﻻستعراض المحتوى عندما تم تحديد وقت استعراض في المحتوى، والتي تقترب من تاريخ

بئر, والقائمة تطول...

– انظر المزيد في: http://www.bigapplesharepoint.com/صفحات/عرض----Insight.aspx?BlogID=40#sthash.7cKuiwly.dpuf

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

</نهاية>

كيفية: تكوين اختبار وحدة، واختبار التغطية مع QUnit.js و Blanket.js لمكتب 365 التطبيق SharePoint

مقدمة

لقد تم استكشاف اختبار وحدة، واختبار التغطية لجافا سكريبت كما عمل في تطبيق SharePoint جديد ل SharePoint على الإنترنت في المكتب 365 جناح.  مسارات البحوث الواضحة دفعتني إلى Qunit.js والحق بعد ذلك, إلى Blanket.js.

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

Blanket.js يتكامل مع كنت، وأنها سوف تظهر لي خطوط جافا سكريبت الفعلية التي كانت – والأهم من ذلك--لم ينفذ فعلياً أثناء تشغيل الاختبارات.  هذا "تغطية" – خطوط أعدم مشمولة بالاختبار في حين أن البعض الآخر لا.

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

كنت

على افتراض لديك الخاص بك Visual Studio إعداد المشروع, ابدأ بتحميل حزمة جافا سكريبت من http://qunitjs.com.  إضافة جافا سكريبت والمغلق المقابلة إلى الحل الخاص بك.  وهذا يشبه الألغام:

image

الشكل 1

كما ترون, لقد تم استخدام 1.13.0 وفي الوقت كتبت هذا بلوق وظيفة. لا تنسى للتحميل وإضافة ملف CSS.

أن الخروج من هذا الطريق, والخطوة التالية هي لإنشاء نوع من نظام الاختبار ومرجع بت كنت.  أنا اختبار مجموعة من الدالات في ملف نصي يسمى "QuizUtil.js" لذلك أنا خلقت صفحة HTML يسمى "QuizUtil_test.html" كما هو موضح:

image الشكل 2

هنا هو رمز:

<!DOCTYPE html>
<html xmlns= "http://www.w3.org/1999/xhtml">
<رئيس>
    <العنوان>اختبار كويزوتيل مع كنت</العنوان>
    <وصلة rel= "أوراق الأنماط" href="../CSS/qunit-1.13.0.css" />
    <البرنامج النصي نوع= "نص/جافا سكريبت" src="QuizUtil.js" تغطية البيانات></البرنامج النصي>
    <البرنامج النصي نوع ="النص/جافا سكريبت" src ="كنت 1.13.0.js"></البرنامج النصي>
    <البرنامج النصي نوع ="النص/جافا سكريبت" src ="blanket.min.js"></البرنامج النصي>

    <البرنامج النصي>
        الوحدة النمطية("جيتيدفروملوكوب");
        اختبار(كويزوتيل جيتيدفروملوكوبفيلد "", الدالة () {
            فأر جودفالوي = "1;#بول غالفين";

            تساوي(جيتيدفروملوكوبفيلد(جودفالوي) + 1, 2), "معرف [" + جودفالوي + "] + 1 وينبغي أن تكون 2";
            تساوي(جيتيدفروملوكوبفيلد(غير معرف), غير معرف, وسيطة الإدخال غير معرفة "يجب إرجاع نتيجة غير معروف.");
            تساوي(جيتيدفروملوكوبفيلد(""), غير معرف, "وسيطة الإدخال فارغ يجب إرجاع قيمة غير معرفة.");
            تساوي(جيتيدفروملوكوبفيلد("تي إتش كيو gobbledigood3;أدا دكفن;sdjfbvubvqrubqer0873407t534piutheqw سكفجا;vn"), غير معرف,"ينبغي دائماً العودة نتيجة قابلة لتحويل إلى عدد صحيح");
            تساوي(جيتيدفروملوكوبفيلد("2;#شخص آخر"), "2", "التحقق [2;#شخص آخر].");
            تساوي(جيتيدفروملوكوبفيلد("9834524;#قيمة طويلة"), "9834524", "اختبار قيمة كبيرة.");
            نوتيكوال(جيتيدفروملوكوبفيلد("5;#أي شخص", 6), 6, "اختبار نوتيكوال (5 لا يساوي 6 لهذه العينة: [5;#أي شخص]");

        });

        الوحدة النمطية("هتمليسكابي");
        اختبار(كويزوتيل هتمليسكابي "()", الدالة () {
            تساوي(هتمليسكابي("<"), "&الملازم;", "الهروب من أقل من المشغل ('<')");
            تساوي(هتمليسكابي("<div class =  "someclass">بعض النص</div>"), "&الملازم;div class =&quot;سوميكلاس&quot;&gt;بعض النص&الملازم;/div&gt;", "سلسلة اختبار أكثر تعقيداً.");
        });

        الوحدة النمطية("جيتداتيسكامل");
        اختبار(كويزوتيل جيتداتيسكامل "()", الدالة () {
            تساوي(جيتداتيسكامل(الجديد التاريخ("31/12/2013")), "2013-12-31T:00:00:00", "اختبار تاريخ جد المبرمج: [12/31/2013]");
            تساوي(جيتداتيسكامل(الجديد التاريخ("01/05/2014")), "2014-01-05T:00:00:00", "اختبار تاريخ جد المبرمج: [01/05/2014]");
            تساوي(جيتداتيسكامل(الجديد التاريخ("01/31/2014")), "2014-01-31T:00:00:00", "اختبار تاريخ جد المبرمج: [01/31/2014]");
            تساوي(جيتوداياسكامل(), جيتداتيسكامل(الجديد التاريخ()), "جيتوداياسكامل() وينبغي أن تساوي جيتداتيسكامل(تاريخ جديد())");
            تساوي(جيتداتيسكامل("هراء القيمة"), غير معرف, "في محاولة للحصول على تاريخ قيمة هراء.");
            تساوي(جيتداتيسكامل(غير معرف), غير معرف, "في محاولة للحصول على موعد [غير معرف] تاريخ.");
        });

        الوحدة النمطية("جيتباراميتيربينامي");
        اختبار(كويزوتيل جيتباراميتيربينامي " (من سلسلة الاستعلام)", الدالة () {
            تساوي(جيتباراميتيربينامي(غير معرف), غير معرف, "في محاولة للحصول على المعلمة غير محددة ينبغي العودة غير معرف.");
            تساوي(جيتباراميتيربينامي("غير موجود"), غير معرف, "في محاولة للحصول على قيمة المعلمة عندما نعلم المعلمة غير موجود.");

        });

        الوحدة النمطية("ملفات تعريف الارتباط");
        اختبار("كويزوتيل وظائف مختلفة في ملف تعريف الارتباط.", الدالة () {
            تساوي(setCookie("اختبار", "1", -1), جيتكوكيفالوي("اختبار"), "ينبغي العمل بالحصول على ملف تعريف ارتباط تعيين.");
            تساوي(setCookie("أنيكوكي", "1", -1), صحيح, "الإعداد الطبخ صالحة ينبغي العودة' صحيح '.");
            تساوي(setCookie("اسم ملف تعريف الارتباط مجنون !@#$%"%\^&*(()?/><.,", "1", -1), صحيح, "تحديد اسم ملف تعريف ارتباط سيئة ينبغي العودة' false '.");
            تساوي(setCookie(غير معرف, "1", -1), غير معرف, "تمرير معرف كاسم ملف تعريف الارتباط.");
            تساوي(جيتكوكيفالوي("غير موجود"), "", "لا يوجد ملف تعريف الارتباط اختبار.");
        });

    </البرنامج النصي>
</رئيس>
<الهيئة>
    <div معرف= "كنت"></div>
    <div معرف= "كنت لاعبا أساسيا"></div>

</الهيئة>
</html>

وهناك العديد من الأمور التي تحدث هنا:

  1. الرجوع إلى قانون بلدي (QuizUtil.js)
  2. الرجوع إلى Qunity.js
  3. تعريف بعض الوحدات النمطية (جيتيدفروملوكوب, ملفات تعريف الارتباط, وآخرون)
  4. وضع <div> هو له معرف "كنت".

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

image

الشكل 3

إذا قمت بالبحث عبر الجزء العلوي, لديك عدد قليل من الخيارات, اثنان منها مثيرة للاهتمام:

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

أما بالنسبة للاختبارات أنفسهم – عدد قليل من التعليقات:

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

التغطية مع Blanket.js

ويكمل Blanket.js كنت بتتبع الخطوط الفعلية من التعليمات البرمجية التي تنفذ أثناء تشغيل الاختبارات الخاصة بك.  أنه يدمج الحق في كنت حتى رغم أنها تطبيق كاملة منفصلة, أنه يلعب لطيف--أنها حقاً تبدو وكأنها واحدة من التطبيق السلس.

وهذا هو blanket.js في العمل:

image الشكل 4

image

الشكل 5

(لديك فعلا انقر فوق خانة الاختيار "تمكين التغطية" في الجزء العلوي [انظر الشكل 3] لتمكين هذا.)

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

الحصول على blanket.js العمل باتباع الخطوات التالية:

  1. تحميل البرنامج من http://blanketjs.org/.
  2. إضافته إلى المشروع الخاص بك
  3. تحديث الصفحة مفعل الاختبار الخاصة بك (QuizUtil_test.html في حالتي) كما يلي:
    1. الإشارة رمز
    2. تزيين الخاص بك <البرنامج النصي> إشارة من هذا القبيل:
    <البرنامج النصي نوع= "نص/جافا سكريبت" src="QuizUtil.js" تغطية البيانات></البرنامج النصي>

Blanket.js تلتقط السمة "البيانات--الغطاء"، ولا عن السحر.  هوكس في كنت, تحديث واجهة المستخدم لإضافة الخيار "تمكين التغطية" وويلا!

ملخص (ليرة تركية; الدكتور)

كنت استخدامها كتابة حالات الاختبار الخاصة بك.

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

استخدم blanket.js لضمان التغطية

  • تأكد من أن كنت تعمل
  • تحميل blanket.js وإضافته إلى المشروع الخاص بك
  • إضافة إلى صفحة مفعل الاختبار الخاصة بك:
    • إضافة مرجع إلى blanket.js
    • إضافة سمة "بيانات--غطاء" إلى الخاص بك <البرنامج النصي> العلامة
  • تشغيل الاختبارات كنت الخاصة بك.

ابدأ أنا لم أي من هذا من قبل، وكان بعض الأشياء البدائية تعمل في عدد قليل من الساعات. 

اختبار سعيدة!

</نهاية>

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

اتبعني على التغريد في 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

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

لقد تم القيام بالكثير من العمل مع البحث 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