سؤال

أنا أتساءل عما إذا كان هناك وسيلة جيدة لربط في Application_Start من موقع SharePoint 2007 عندما النامية الميزة ؟ وأنا أعلم أنني يمكن مباشرة تحرير العالمية.asax في جذر الموقع ، ولكن هل هناك طريقة للقيام بذلك بحيث يحصل نشرها مع ميزة ؟

وذلك بفضل!

هل كانت مفيدة؟

المحلول

هذا هو في الواقع ممكن ، ولكن هذا لا تنطوي على المستوى العالمي.asax.

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

المفتاح يكمن في تنفيذ التعليمات البرمجية في السؤال كما HttpModule (أي نوع التي تطبق IHttpModule واجهة) والأسلاك في ASP.NET خط أنابيب خدمة تطبيق SharePoint الخاص بك.تحدث تقريبا ، هذه هي الخطوات:

  1. إنشاء فئة التي تطبق IHttpModule واجهة.
  2. تنفيذ أسلوب Init في HttpModule;وهذا ما يسمى عند HttpApplication (في هذه الحالة ، SPHttpApplication) هو الإعداد ، وأنها تعطيك فرصة لتنفيذ تجهيز الأسلاك متابعة الحدث الوفود الأخرى أنابيب الأحداث ، إلخ.
  3. إنشاء SPFeatureReceiver أن إضافة و إزالة HttpModule من الويب المستهدفة.ملفات التكوين على التفعيل والتعطيل ، على التوالي.ويتم هذا باستخدام SPWebConfigModification نوع تحديث <httpModules> العقدة في الويب المستهدفة.ملفات التكوين.
  4. حزمة جميع كسمة ونشر عبر WSP.

لمزيد من المعلومات حول HttpModule ، http://msdn.microsoft.com/en-us/library/ms227673.aspx.عن بعض التفاصيل الإضافية على SPWebConfigModification نوع ، انظر http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.spwebconfigmodification.aspx.

النتيجة:الدرجة التي يمكن التعامل مع بدء تشغيل التطبيق و هو الانتشار عبر ميزة.لا دليل ملف القرصنة المطلوبة.

لقد استخدمت بنجاح في عدد من السيناريوهات مؤخرا مع العرف التخزين المؤقت مقدم (IVaryByCustomHandler) التي تحتاج إلى تسجيل نفسها على رد مع SPHttpApplication عندما بدأت.

على الرغم من سؤالك هو قليلا من كبار السن ، آمل أن يساعد هذا!

نصائح أخرى

احساسي على هذا هو أنه لن يكون ممكنا.Application_Start يسمى قبل وقت التشغيل مثل asp.net محرك بدء لذا هناك على الأرجح لا يمكن أن يكون أي طريقة ربط معالج خارج من تعديل العالمية.asax - على سبيل المثال ، هوك يجب أن يكون التعريفي ومستمرة كما أن البقاء على قيد الحياة تطبيق وقف/التفريغ.لذا, إذا كان لديك لكتابة العالمية.asax, أعتقد أنه يمكنك كتابة ميزة EventReceiver لإجراء التعديل.

وإلى جانب ذلك ، يمكن أن تعطي المزيد من التفاصيل عن لماذا ؟ ربما هناك زوايا أخرى من الهجوم.فكرة تعديل العالمية.asax على الطاير يجعلني أشعر بالمرض.لا يمكن أن تكون جيدة.

Oisin

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top