ASP.NET: इस पद्धति को एप्लिकेशन के प्री-स्टार्ट इनिशियलाइज़ेशन चरण के दौरान नहीं बुलाया जा सकता है


135

मैं IIS 6.0 पर चलने वाला ASP.NET MVC 3 साइट प्राप्त करने का प्रयास कर रहा हूं।

वर्तमान में जब मैं सर्वर से एक पेज का अनुरोध करता हूं तो यह निम्नलिखित त्रुटि देता है:

पार्सर त्रुटि संदेश: इस विधि को आवेदन के पूर्व-प्रारंभ आरंभीकरण चरण के दौरान नहीं बुलाया जा सकता है।

इस लाइन पर:

<add name="MyMembershipProvider" type="NS.MyMembershipProvider" connectionStringName="MyDatabase" applicationName="/MySite"/>

मैं पूरी तरह से स्तब्ध हूँ और ASP.NET अनुप्रयोग जीवनचक्र के बारे में बहुत कुछ नहीं जानता, केवल 6.0 और 7.0 के बीच के अंतर को बताता हूँ। इस पर MSDN पृष्ठों के माध्यम से पढ़ने से ज्यादा मदद नहीं मिली।

क्या किसी के पास जांच के लिए कोई अंतर्दृष्टि या कोई अच्छा लिंक है? :)


1
मेरे पास वीएस लोकलहोस्ट वेबसर्वर (कैसिनी) पर एमवीसी 2 के साथ एक ही मुद्दा है।
मोर्टेन क्रिस्टियनसेन

1
यह समान समस्या (और रिज़ॉल्यूशन) IIS 7.0 पर MVC 3 पर भी लागू होती है।
CrazyPyro

2
नए प्रोजेक्ट के साथ MVC4 और IIS6 के साथ भी यह समस्या है। वेबमेट्रिक्स को हटाकर फिक्स्ड। *, नीचे उत्तर देखें।
एंड्रयू बैकर

मेरे पास एक ही त्रुटि थी, लेकिन एक सदस्यता प्रदाता के संदर्भ में नहीं, इसलिए स्वीकृत उत्तर कोई मदद नहीं था। यह बताता है कि मैंने कॉन्फ़िगरेशन अनुभाग में असेंबली निर्दिष्ट नहीं करते हुए एक बेवकूफ गलती की है। मैंने त्रुटि को साफ़ करने के लिए अनुभाग का नाम "पूरी तरह से। July.name.of.type, Assembly.name" में बदल दिया।
मत्स्य चक्र

जवाबों:


253

इसे अपने web.config में जोड़ें (appSettings अनुभाग में):

<add key="enableSimpleMembership" value="false"/>
<add key="autoFormsAuthentication" value="false"/>

संपादित करें:

जो लोग पूछते हैं कि ऐसा क्यों है, यह एक ज्ञात मुद्दा है जो एम 3 3 रिलीज नोट में वर्णित है और अधिक विवरण यहां


3
क्या आप उस पर थोड़ा विस्तार कर सकते हैं? Web.config में कहां? चाबियां क्या करते हैं? मुझे उन कुंजियों के ऑनलाइन दस्तावेज़ खोजने में समस्या हो रही है।
केनेट बेलेंस्की

2
समझा। यह स्वचालित रूप से सुरक्षा और सदस्यता नियमों को परिभाषित करता है ताकि आपको कस्टम जोड़ने से पहले उन्हें ओवरराइड करना पड़े। मुश्किल।
जोनाथन एलन

4
मैं एक नई परियोजना बनाता हूं, यह त्रुटि उत्पन्न नहीं होती है, और मुझे इन कुंजियों को जोड़ने की आवश्यकता नहीं है। मेरे मौजूदा प्रोजेक्ट पर, मुझे इन कुंजियों को काम करने के लिए जोड़ना था, क्यों ??
१०:४१

2
क्यों? क्या कोई कृपया कुछ स्पष्टीकरण / प्रलेखन से जुड़ सकता है?
मैट कोकाज

1
पहली पंक्ति ने इसे मेरे लिए MVC4 में तय किया: <add key = "enableSimpleMembership" value = "false" />
angularsen

39

ASP.NET MVC3 से अपने कुछ एप्लिकेशन को MVC4 में अपग्रेड करने के बाद मुझे यह त्रुटि मिल रही थी। यह WebMatrix विधानसभाओं (WebMatrix.WebData.dll और WebMatrix.Data.dll) का परिणाम था। मैंने उन संदर्भों और विधानसभाओं को / बिन निर्देशिका से हटा दिया और इस मुद्दे का ध्यान रखा।


2
@rboarman - यह मेरे लिए बार-बार तय किया है। क्या आप सुनिश्चित हैं कि विधानसभाएं अभी भी / बिन निर्देशिका में नहीं बैठी हैं?
जस्टिन हेलगर्सन

ऊपर बताए अनुसार कुंजी को जोड़ना। WebMatrix.WebData.dll और WebMatrix.Data.dll की उपस्थिति ने दोनों में कोई अंतर नहीं किया।
रबोरमन

यह मेरे लिए तब तय हुआ जब मैंने MVC4RC से RTM में अपग्रेड किया। मैंने एक ताजा प्रोजेक्ट बनाकर और सभी संबंधित बिट्स पर कॉपी करके शुरुआत की। मैंने कोई कोड परिवर्तन नहीं किए, और web.config में कोई महत्वपूर्ण परिवर्तन नहीं हुआ। अजीब।
एंड्रयू बैकर

1
इसे मेरे लिए तय किया। मैं ऐसी स्थिति में था, जहां मैंने एज़्योर के लिए कुछ चीजें स्थापित कीं, परियोजना का निर्माण किया, यह तय किया कि मैं जो चाहता था और टीएफएस के माध्यम से पूर्ववत नहीं किया था, इसलिए मेरा सभी कोड IDENTICAL था जब यह काम कर रहा था। हालाँकि, मेरा बिन फ़ोल्डर थोड़ा भारी था। WebMatrix विधानसभाओं को मैन्युअल रूप से साफ़ करना (जैसा कि प्रोजेक्ट पर क्लीन को कॉल करने का विरोध किया गया है) ने काम किया। धन्यवाद Ek0nomik
यति

धन्यवाद। इसने मेरे लिए इसे ठीक कर दिया।
corix010

8

@ Ek0nomik सही है। हम MembershipProviderनए से माइग्रेट हुए ExtendedMembershipProviderजिससे हमें WebMatrix नामस्थान में दी गई कुछ नई कार्यक्षमता का लाभ उठाने की अनुमति मिली । डिफ़ॉल्ट रूप से सरल सदस्यता किसी कारण से सक्षम है, इसलिए हमें इसे स्पष्ट रूप से अक्षम करना पड़ा क्योंकि हम उपयोग नहीं करना चाहते थे SimpleMembershipProvider

हमें बस इसे web.config में जोड़ना था:

<add key="enableSimpleMembership" value="false"/>

सिंपल मेम्बरशिप सक्षम होने के कारण Application_Start हैंडलर से पहले प्रदाता को आरंभिक कोड निष्पादित करना पड़ता है। हमारी ऐप संरचना को निष्पादित करने के लिए पहली चीज़ App_Start की आवश्यकता है। व्यक्तिगत रूप से मैं हमेशा यह उम्मीद करूंगा लेकिन सरल सदस्यता इस व्यवहार को बदल देती है। खबरदार।


6

खैर, मुझे बस यह त्रुटि मिली, और यह गलती से मेरी परियोजना की जड़ में एक .cshtml की नकल करने के परिणामस्वरूप हुई। यह परियोजना में शामिल नहीं था। हटा दिया गया और वह त्रुटि दूर हो गई। यह IIS7 पर MVC3 के साथ था। मुझे लगता है कि कुछ लोगों को यह समस्या उसी नाव में हो रही है।


2

यह किसी एप्लिकेशन में बहुत अधिक रिफ्लेक्शन कॉल के बहुत जल्दी आने के कारण होता है। यह सिर्फ इतना होता है। Web.Config सुझाव अन्य उत्तरों में एक ऐसे रिफ्लेक्शन कॉल को बनने से रोकता है। मेरे मामले में हालांकि:

मैं एंटिटी फ्रेमवर्क का उपयोग कर रहा हूं, और भाग गया update-database। मुझे मिला:

इस पद्धति को आवेदन के पूर्व-प्रारंभ आरंभीकरण चरण के दौरान नहीं बुलाया जा सकता है।

जैसा कि यह पता चला है कि हमारे पास एक कोड था जो एक पुस्तकालय का उपयोग करता था जिसे हाल ही में सभी नामस्थान / परियोजनाओं में सभी कोड प्राप्त करने के लिए संशोधित किया गया था। विशेष रूप से, यह कहा जाता है:

System.Web.Compilation.BuildManager.GetReferencedAssemblies()

Kaboom। जिसके कारण यह अस्पष्ट त्रुटि हुई। ईएफ माइग्रेशन एक अजीब क्षेत्र में चलता है जहां आवेदन आधा चल रहा है और आधा नहीं है, जिसका अर्थ है कि उपरोक्त विधि कभी भी किसी भी कोड द्वारा नहीं बुलाई जा सकती है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.