सामान्य वेब config और बिन फ़ोल्डरों इस तथ्य के बाद में जोड़ने से यह मानते हुए से http मॉड्यूल संदर्भ तुम वहाँ एक हैं के लिए काम नहीं करता है वर्तमान ढांचे में आप के लिए संभावनाओं की जोड़ी:
आप वेब कॉन्फ़िगरेशन फेरबदल कोई आपत्ति नहीं है, लेकिन बिन बाहर मॉड्यूल स्टोर करने के लिए आप AppDomain के लिए कोई हैंडलर रजिस्टर करने के लिए उपयोग कर सकते हैं की जरूरत है System.Web.PreApplicationStartMethod .ssemblyResolve ईवेंट के बाद ईवेंट हैंडलर लोड होता है और
टाइप करें
यदि आप web.config को संशोधित नहीं करना चाहते हैं या स्टैक के शीर्ष पर होने के लिए अपनी घटनाओं की आवश्यकता है, तो आप इसे GACING करके प्राप्त करेंगे और मशीन स्तर की वेब कॉन्फ़िगरेशन को बदलकर आप System.Web.PreApplicationStartMethod का उपयोग कर सकते हैं केवल बिन निर्देशिका में होने के कारण स्टार्टअप पर चलाने के लिए कोड प्राप्त करने के लिए, तो Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.MVC रेजर पुस्तकालयों से पंजीयन मॉड्यूल का उपयोग करें। ऐसा करने से आपको मशीन मॉड्यूल सूची में अंतिम मॉड्यूल होने के समान परिणाम मिलते हैं।
यदि आप वेब कॉन्फ़िगरेशन को संशोधित नहीं करना चाहते हैं और ईवेंट स्टैक में पहले होने की आवश्यकता है तो आपको ईवेंट हैंडलर को फिर से ऑर्डर करने के लिए कुछ करने की आवश्यकता है। मुझे त्रुटियों को निगलने वाली कुछ कोशिश करने और डीबग करने के लिए इसे एक बार करने की ज़रूरत थी। के बारे में परावर्तक में है और मैं इस समारोह के साथ आया एक छोटी सी poking मौजूदा ईवेंट हैंडलर्स पाने के लिए
Dim t As Type = target.[GetType]()
Public Function GetEventSubscribers(ByVal target As Object, ByVal eventName As String) As [Delegate]()
Dim w = CType(t.GetField("_events", BindingFlags.Instance Or BindingFlags.Static Or BindingFlags.NonPublic).GetValue(target), System.ComponentModel.EventHandlerList)
Dim k = t.GetFields(BindingFlags.[Static] Or BindingFlags.Instance Or BindingFlags.NonPublic).Where(Function(x) x.Name.StartsWith("Event" & eventName)).Select(Function(x) x.GetValue(target)).ToList()
Dim d() As [Delegate] = k.SelectMany(Function(x)
If w(x) Is Nothing Then
New [Delegate]() {}
Else
Return w(x).GetInvocationList()
End If
End Function).ToArray
Return d
End Function
आप एक घटनानाम आप सभी पंजीकृत हैंडलर प्रतिनिधियों मिलता है, जो आप करने की अनुमति देगा के साथ यह करने के लिए HttpApplication उदाहरण पार कर लेते हैं उनमें से प्रत्येक पर RemoveEventHandler() को कॉल करें।
यदि आप इसे त्रुटि ईवेंट में करते हैं, तो अपना खुद का हैंडलर जोड़ें, फिर पूर्व-मौजूदा प्रतिनिधियों को सही क्रम में दोबारा जोड़ें, फिर आपके हैंडलर को पहले आग लगती है, इससे पहले कि किसी भी अन्य हैंडलर को उलझाने का मौका मिले यहां तक कि राज्य और शेष एप्लिकेशन तब तक कोई बुद्धिमान नहीं लगता है जब तक कि आप ईवेंट स्थिति को स्वयं नहीं बदलते।
यह एक अत्यंत उपयोगी टिप है:
dependentAssembly
अनुभाग आईआईएस जहां विधानसभा फ़ाइल पाया जा सकता है निर्देश देता है। धन्यवाद – NickSuperb