كنت أعمل على ميزة الأسبوع الماضي إضافة بعض مستقبلات الأحداث إلى مثيل قائمة محددة. (أنا blogged بعض الشيء عن هذا المتلقي قائمة هنا).
استخدام سطر الأوامر, ويمكن تثبيت هذه الميزة مع أي خطأ (ولكن انظر أدناه للخطأ الخفية). عندما حاولت نشر الميزة في الموقع, واشتكى موس من "FileNotFoundException" خطأ. ويصف هذا بلوق دخول كيفية حلها.
وهذا هو الخطأ الذي أظهر لي موس في مستعرض ويب:
ميزة ' b2cb42e3-4f0a-4380-آبا-1ef9cd526f20’ تعذر تثبيت لأن تحميل الحدث المتلقي الجمعية "xyzzyFeatureReceiver_0" فشل: System.IO.FileNotFoundException: تعذر تحميل الملف أو التجميع ' xyzzyFeatureReceiver_0’ أو بأحد التبعيات الخاصة به. يتعذر على النظام العثور على الملف المحدد.
اسم الملف: ' xyzzyFeatureReceiver_0’
في System.Reflection.Assembly.nLoad(اسم الملف, سلسلة تعليمات البرمجة الأساسية, دليل أسيمبليسيكوريتي, لوكاتيونهينت الجمعية, ستاككراولمارك& ستاكمارك, ثرووونفيلينوتفوند المنطقية, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.InternalLoad(اسم أسيمبليريف, دليل أسيمبليسيكوريتي, ستاككراولمارك& ستاكمارك, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.InternalLoad(سلسلة أسيمبليسترينج, دليل أسيمبليسيكوريتي, ستاككراولمارك& ستاكمارك, فورينتروسبيكشن المنطقية)
في System.Reflection.Assembly.Load(سلسلة أسيمبليسترينج)
في Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
تحذير: يتم تشغيل تسجيل الجمعية ملزمة OFF.
لتمكين تسجيل فشل ربط الجمعية, قم بتعيين قيمة التسجيل [HKLMSoftwareMicrosoftFusion!انابليلوج] (DWORD) إلى 1.
ملاحظة: وهناك بعض جزاء الأداء المرتبطة بتسجيل فشل ربط الجمعية.
لإيقاف تشغيل هذه الميزة, قم بإزالة قيمة التسجيل [HKLMSoftwareMicrosoftFusion!انابليلوج].استكشاف الأخطاء وإصلاحها باستخدام Windows SharePoint Services.
أنا أعرف كيف التسبب عمدا في هذا الخطأ: لا تثبيت تجميع في GAC. لكن, في GAC. أنا عادة تثبيت التجميعات في GAC بسحبها إلى c:\windowsassembly المجلد باستخدام مستكشف windows. لقد شعرت ابدأ 100% مريحة القيام بذلك لأنني اعتقدت دائماً أن gacutil موجودة لسبب … ولذلك حاولت أن. فأي فرق.
البحث في الإنترنت، ووجدت هذه الوظيفة: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1
حدث المشهد الرئيسي لاستخدام بت الجذر ذاته من التعليمات البرمجية (من الكتاب داخل WSS من هذه القائمة) حتى أنه كان علامة على الأمل. ومع ذلك, الاقتراح من تزيين الجمعية مع [الجمعية العامة: ] التوجيه لم يكن له معنى بالنسبة لي. حاولت ذلك على أي حال، وكنت على حق. فأي فرق.
ثم لاحظت أن تعريف الفئة بلدي لم يكن الجمهور. جعلت من الجمهور، والتي جعلت أي فرق.
القادم, لقد ذهبت إلى عناء لتمكين تسجيل فشل ربط الجمعية "" (وفي أعقاب إرشادات مفيدة ودقيقة قدمت) وهذا حيث بدأت الأمور للحصول على الاهتمام. أن تسجيل الدخول يظهر لي أن وقت التشغيل بالبحث في كل مكان على هذا الخادم لبلدي الجمعية. بل يبدو أنه ينبغي البحث عن ذلك في بلدي الطب مجلس الوزراء. لكن … لن ابحث عنه في GAC.
وضعت على بلدي سترة الشتاء ويذهب البحث الإنترنت مرة أخرى، والعثور على شخص ما بأن هذه المشكلة أيضا. مناقشة مطولة في هذا الترحيل بيترز قبالة إلى لا شيء، ولا أجد حلاً.
انتقل بلدي الجمعية إلى أحد الأماكن السجل المطالبات فإنه يقوم بالبحث واجعل التقدم أكثر قليلاً. أنا أشعر بمكافأة مع خطأ جديد في المستعرض عند محاولة تنشيط ميزة:
فشل في إنشاء كائن جهاز استقبال ميزة من الجمعية "xyzzyFeatureReceiver_0", اكتب "Conchango.xyzzyFeatureReceiver" لميزة b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: لا يمكن أن تكون القيمة فارغة.
اسم المعلمة: نوع
في System.Activator.CreateInstance(نوع نوع, NonPublic منطقية)
في System.Activator.CreateInstance(نوع نوع)
في Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()استكشاف الأخطاء وإصلاحها باستخدام Windows SharePoint Services.
وقت لآخر رحلة واحدة على الإنترنت!
هذه المرة العثور, وكما هو متوقع ما يكفي, أن موس قضايا هذا الخطأ لأن الجمعية العامة ليس في GAC.
أريد أن احصل على شيء إيجابي للخروج من هذه وحاول أن تشعر بالفخر بقليل أن لقد قمت بإنشاء هارب تجميعات MSIL, ولكن لا يعمل. أنا منزعج للتو عادي. أجد نفسي مدمدم "الدجاجة أم البيضة" تحت انفاسي.
وأخيراً قررت البونت. أنا إنشاء مشروع جديد تماما ونسخ/لصق التعليمة البرمجية من المشروع غير العاملين إينكريديبليكلواكيدفرومثيجاكاسيمبلي على هذا المشروع الجديد. (أنا ابحث عن علامة بناء يسمى شيئا مثل "إخفاء من الجمعية العامة ملزمة إذا كانت مثبتة في GAC" ولكن لا يمكن العثور على أحد).
تثبيت الميزة، وتفعيلها و … وهو يعمل! حتى, وبعد كل ذلك, كان على أن الأساس ' إعادة تمهيد’ المشروع الخاص بي. وهذا سبب آخر لماذا أكره أجهزة الكمبيوتر.
لم أكن أعرف شيئا مفيداً من هذا. وكان تثبيت الميزات باستخدام سطر الأوامر stsadm طوال اليوم وتم استخدام "-القوة" خيار الخروج من هذه العادة. لسبب من الأسباب, لم أكن استخدام خيار القوة-عندما قمت بتثبيت المشروع الجديد. هذه المرة, فعلت فعلا, ننسى حقاً لنسخ الجمعية هذا المشروع الجديد في GAC. وكنتيجة لذلك, تلقيت هذا فيلنوتفونديكسسيبشن "" خطأ. هذه المرة, حصلت عليه من الأمر stsadm, لا عندما حاولت تنشيط الميزة عبر مستعرض ويب. حتى, -قوة الواقع يلعب دورين. فإنه يسمح لك بإعادة تثبيت ميزة موجودة. كما يسمح لك لتثبيت ميزة عربات التي تجرها الدواب التي لا يمكن العمل في وقت التشغيل بواسطة قمع الخطأ. ربما جاء في التعليمات في مكان ما بقدر ولكن لاحظت ابدأ أنها.
</نهاية>
أيضا, كان لي بلدي 2 ساعات لحظات نينتيندوسيكستيفوررر-في--سيئة-الطريق الهستيري عند إعادة تسمية Namespace على "المتلقي ميزة", للمساعدة في تعقب لك أو أي شخص آخر بدأ فيها.
أن جوهر المشكلة يكمن في wsp المنشورة في قاعدة بيانات sharepoint. قرأت رسالتك، وفي حين أنها في الواقع إصلاح المشكلة لدينا حل ضخمة مع العديد من المشاريع وعشرات من الملفات حتى تتحرك كل شيء لم يكن خياراً.
بغض النظر عن كم يمكنك تحديث الخاص بك GAC أو التجميع الخاص بك, ما هو إعطائك المشكلة هي الجمعية في WSP الحالية المثبتة على sharepoint.
لاحظت أن بسهولة بمحاولة سحب فقط الحل (التي يتم فيها يحدث الخطأ). كل ما يحدث في موعدها "تراجعه" وينبغي أن يعتبر "wsp المنشورة"-المشروع نفسه فقط لا.
كان لي الحل:
– الإدارة المركزية: إلغاء الحل
– الأمر stsadm: ديليتيسولوشن
– Visual Studio => المشروع => حزمة
– الأمر stsadm: أدسولوتيون-الملف ProjectbinDebugProject.wsp
– الأمر stsadm: ديبلويسولوشن-project.wsp اسم-فورا-اللووجاكديبلويمينت-القوة
– Visual Studio => نشر
أيضا حذف المجلدات بن والتصحيح من المشروع قبل تشغيل نشر مرة أخرى, قد لا يكون له أي تأثير ولكن تستحق تعليقاً.
وهذا يعمل على حد سواء
"ميزة … تعذر تثبيت لأن تحميل الجمعية جهاز استقبال الحدث"
و
"فشل في إنشاء كائن جهاز استقبال ميزة من الجمعية"
بفضل!
فرانسيسكو
أمضى بضع ساعات في محاولة لإصلاح هذه المشكلة نفسها ووجدت حلاً أفضل من مجرد إعادة إنشاء المشروع.
اتضح أن لبعض السبب في Visual Studio قد حدد هدف بناء إلى x 86 بدلاً من x 64 أو MSIL – أن الجمعية في GAC, ليس فقط GAC نفسها التي 64 بت ابحث SharePoint.