साइट asp.net में काम करना बंद कर दिया। System.Web.WebPages.Razor.Configuration।


115

मुझे सर्वर पर इस तरह की समस्या है

[A] System.Web.WebPages.Razor.Configuration.HostSection को [B] System.Web.WebPages.Razor.Configuration.HostSection में नहीं डाला जा सकता है। टाइप A की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' स्थान पर 'डिफ़ॉल्ट' संदर्भ में 'C' \ Windows \ Microsoft.Net \ Assembly \ GAC_MSIL \ System से होती है। .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '। टाइप B की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' स्थान 'C' के संदर्भ में 'C:: Windows \ Microsoft.Net \ विधानसभा \ GAC_MSIL \ System से होती है। .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '।

विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनियंत्रित अपवाद उत्पन्न हुआ। कृपया त्रुटि के बारे में अधिक जानकारी के लिए स्टैक ट्रेस की समीक्षा करें और यह कोड में कहां उत्पन्न हुआ।

अपवाद विवरण: System.InvalidCastException: [A] System.Web.WebPages.Razor.Configuration.HostSection को [B] System.Web.WebPages.Razor.Configuration.HostSection में नहीं डाला जा सकता है। टाइप A की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' स्थान पर 'डिफ़ॉल्ट' संदर्भ में 'C' \ Windows \ Microsoft.Net \ Assembly \ GAC_MSIL \ System से होती है। .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '। टाइप B की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' स्थान 'C' के संदर्भ में 'C:: Windows \ Microsoft.Net \ विधानसभा \ GAC_MSIL \ System से होती है। .Web.WebPages.Razor \ v4.0_1.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '।

स्रोत त्रुटि:

मैंने सीवीसी और अपने कंप्यूटर पर एमवीसी 3 स्थापित किया है। मैंने इसे 15 दिन पुराने कोडबेस के साथ बदलने की कोशिश की है, लेकिन वही समस्या मौजूद है।

अब मैं इसे हल करना चाहता हूं। क्या कोई जानता है कि मैं इसे कैसे ठीक कर सकता हूं।


आपके आवेदन में ऐसा लगता है कि कुछ विधानसभाओं में रेजर के विभिन्न संस्करणों पर निर्भरता है। अपनी निर्भरता देखने के लिए अपने असेंबली को ildasm या .NET रिफ्लेक्टर के साथ देखने का प्रयास करें।
पाउलो मोर्गादो

जवाबों:


200

रूट में Web.config सुनिश्चित करें कि असेंबली में विधानसभा "System.Web.WebPages.Razor" और "System.Web.Mvc" के लिए उचित संस्करण है। उनके वास्तविक अस्तित्व के साथ-साथ मेरे "System.Web.WebPages.Razor" असेंबली टैग के लिए जाँच त्रुटि गायब थी। मेरे पास मेरे विधानसभा संस्करण 3.0 और 5.0 के लिए क्रमशः इस पूरे लेखन के समय में थे। कोड को नीचे जैसा कुछ दिखना चाहिए। PublicKeyToken संस्करणों के बीच एक ही रहेगा। चीयर्स!

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <!--some more bidings-->
  <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages.Razor"
            publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
<!--some more bidings-->
</assemblyBinding>

2
मेरे लिए काम किया। मुझे रेजर जानकारी याद आ रही थी और एमवीसी ने गलत संस्करण की ओर इशारा किया।
होकी

@Hoakie के रूप में समान स्थिति - रेजर को 3.0.0 और MVC को 5.0.0 में अपडेट किया गया और रेजर पर निर्भरता के संदर्भ नहीं थे, और एमवीसी ने अभी भी पुराने विचलन = "1.0.0.0-4.0.0.0" newVersion = "4.0.0.0" कहा। ऊपर रेजर निर्भरता एक्सएमएल को जोड़ा और 4.0.0.0 से 5.0.0.0 और बॉब के यार चाचा को बदल दिया।
स्कॉट बेकर

2
यह मेरे लिए धन्यवाद का काम किया। मेरे पास सही बाइंडिंग के साथ "System.Web.WebPages" था, लेकिन यह तब तक काम नहीं कर रहा था जब तक कि मैंने रेजर कुंजी को नहीं जोड़ा। हालांकि अन्य परियोजनाओं में मुझे ऐसा करने की ज़रूरत नहीं थी, मुझे यकीन नहीं है कि अंतर क्या है और रेजर के लिए सुपर-क्लास बाइंडिंग क्यों नहीं संभालेंगे। क्या किसी को जवाब पता है?
शेन

मुझे भी। मेरे पास एमवीसी प्रविष्टि है लेकिन रेजर एक नहीं। अब यह काम करता है। धन्यवाद।
यवेस तकाज़ी 21


40

मेरा मामला mvc4 से mvc5 में अपग्रेड हो रहा था।

मैंने सुनिश्चित किया कि मेरे संदर्भ सिंक में थे (एक नए बनाए गए mvc5 ऐप के साथ), तदनुसार web.config फ़ाइल को अपडेट किया और यह अभी भी काम करेगा। जब मैंने अपनी web.config फ़ाइल ( INIEIDE THE VIEWS निर्देशिका ) से बदल दी तो यह अंत में काम आया :

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

इसके लिए:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>

रिमेम्बर: स्टॉप आईस (एक्सप्रेस या देशी), क्लीन सोल्यूशन, बिल्ड एंड रन।


मुझे लगता है कि यह प्रतिक्रिया वास्तव में एक जवाब होना चाहिए। असेंबली बाइंडिंग आम तौर पर mvc4 से mvc5 में अपग्रेड करने के लिए अद्यतन-पैकेज दृष्टिकोण का उपयोग करते समय ठीक है।
रोमन

34

बस मामले में ian का जवाब पर्याप्त नहीं था (और असेंबली सही है, लेकिन कास्टिंग अभी भी गलत है) संभावना है कि आपने <configSections>अभी तक नई विधानसभा को प्रतिबिंबित करने के लिए अपडेट नहीं किया है। सुनिश्चित करें कि विधानसभा का हिस्सा System.Web.WebPages.Razorपुस्तकालय के संस्करण 3.0 का भी संदर्भ देता है। जैसे

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" />
</sectionGroup>

(ध्यान दें कि वे सभी version=3.0.0अब संदर्भ )


8
मैं सिर्फ इतना जोड़ता हूं कि यदि आप इन सेटिंग्स को रूट Web.Config में नहीं पा सकते हैं, तो Web.Config को व्यू फ़ोल्डर में देखें।
ग्लिग्नन डेस

4
हाँ यह मुद्दा मेरे लिए दृश्य फ़ोल्डर web.config था।
मैथ्यू निकोल्स

15

इयान के समाधान ने एक परियोजना में काम किया, लेकिन दूसरों के लिए मुझे एमवीसी 5 और वेब एपीआई 2 में अपग्रेड करने के लिए अधिक संपूर्ण जानकारी की आवश्यकता है


यह लेख मेरे लिए यह किया। धन्यवाद!
ग्लियोगेन

मुझे लगता है कि इस लेख में सबसे सही और पूर्ण उन्नयन विवरण शामिल है, धन्यवाद।
मिखाइल ब्रिंचुक

1

यह समस्या बहुत आम है जब आप MVC 4 के लिए विकसित कर रहे हैं और फिर अचानक आप एक पैकेज स्थापित करते हैं जो नए संस्करण में उपलब्ध है इसलिए यह आपके एप्लिकेशन को तोड़ देता है।

केवल इस तरह के मुद्दे का समाधान अपने पूरे एप्लिकेशन को नए या अपने एप्लिकेशन के साथ संगत पुराने पैकेज को स्थापित करना है


1

संकट:

[ए] टाइप A की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 2.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' स्थान पर 'डिफ़ॉल्ट' संदर्भ में 'C' \ Windows \ Microsoft.Net \ Assembly \ GAC_MSIL \ System से होती है। .Web.WebPages.Razor \ v4.0_2.0.0.0__31bf3856ad364e35 \ System.Web.WebPages.Razor.dll '। टाइप B की उत्पत्ति 'System.Web.WebPages.Razor, संस्करण = 3.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' के संदर्भ में 'डिफ़ॉल्ट' स्थान पर 'C' \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 से हुई है। \ Temporary ASP.NET फ़ाइलें \ rbs.ceds.todomvcdemo \ 73d0b7c7 \ 46e3986d \ विधानसभा \ dl3 \ 21020800 \ 101279fc_da94cf01 'System.Web.WebPages.Razor.dll'।

पहचान:

त्रुटि कॉन्फ़िगरेशन फ़ाइल यानी web.config आपके प्रोजेक्ट के साथ है।

यहां आप पाएंगे कि रेजर संस्करण 2.0.0.0 पर सेट है जहां आपके प्रोजेक्ट में 2.0.0.0 संस्करण उपलब्ध नहीं है।

उपाय:

यह सरल है, बस संस्करण को 2.0.0.0 से 3.0.0.0 तक बदल दें और यह जादू करेगा।

प्रकार = " , संस्करण = 3.0.0.0

आपको पुनर्निर्देशन डालने की आवश्यकता नहीं है या इसलिए यह चीजों को जटिल बना देगा।


0

मुझे एक समस्या और समाधान मिला।

1 मैं अपने कोड को 4.0 पर लक्षित करता हूं और फिर कोड अपलोड करता हूं और यह काम करता है। इससे पहले मैं अपने कोड को asp.net MVC 4 में भी अपडेट करता हूं।

अब यह काम है :)


3
क्या आप अधिक विस्तार से बताएंगे?
nwayve

0

अपने सिस्टम में दो dll फाइल लोकेशन खोलें अपनी फाइल लोकेशन में से किसी एक में dll को कॉपी करें
और प्रोजेक्ट को चलाने का प्रयास करें।


0

इसे ठीक करने का एक और तरीका है, संदर्भ को अद्यतन किए बिना

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="3.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Pages.Razor" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.0.0" newVersion="1.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.