फ़ाइल या असेंबली लोड नहीं कर सका 'System.Web.Mvc'


200

मेरा नया ASP.NET MVC वेब एप्लिकेशन मेरे विकास कार्य केंद्र पर काम करता है, लेकिन मेरे वेब सर्वर पर नहीं चलता है ...


/ 'अनुप्रयोग में सर्वर त्रुटि


विन्यास त्रुटि

विवरण: इस अनुरोध को पूरा करने के लिए आवश्यक कॉन्फ़िगरेशन फ़ाइल के प्रसंस्करण के दौरान एक त्रुटि हुई। कृपया नीचे दिए गए विशिष्ट त्रुटि विवरण की समीक्षा करें और अपनी कॉन्फ़िगरेशन फ़ाइल को उचित रूप से संशोधित करें।

पार्सर त्रुटि संदेश: फ़ाइल या असेंबली को लोड नहीं कर सका 'System.Web.Mvc, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी एक निर्भरता। सिस्टम निर्दिष्ट फाइल का पता लगाने में नाकामयाब रहा।

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

Line 44:         <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 45:         <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 46:         <add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
Line 47:         <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
Line 48:         <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

स्रोत फ़ाइल: C: \ inetpub \ www.example.org \ web.config लाइन: 46

असेंबली लोड ट्रेस: विधानसभा 'System.Web.Mvc, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' लोड नहीं किया जा सका, यह निर्धारित करने के लिए निम्न जानकारी मददगार हो सकती है।

WRN: असेंबली बाइंडिंग लॉगिंग बंद है।
असेंबली बाइंड विफलता लॉगिंग को सक्षम करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] (DWORD) को 1 पर सेट करें।
नोट: असेंबली बाइंड विफलता लॉगिंग के साथ जुड़े कुछ प्रदर्शन जुर्माना है।
इस सुविधा को बंद करने के लिए, रजिस्ट्री मान [HKLM \ Software \ Microsoft \ Fusion! EnableLog] को हटा दें।

संस्करण की जानकारी: Microsoft .NET फ्रेमवर्क संस्करण: 2.0.50727.3053; ASP.NET संस्करण: 2.0.50727.3053


क्या मुझे सर्वर पर AspNetMVCBeta-setup.msi स्थापित करने की आवश्यकता है ? या सर्वर के लिए एक अलग इंस्टॉलर है?

यहां छवि विवरण दर्ज करें

जवाबों:


215

मैंने अभी इसे संबोधित करते हुए एक ब्लॉग पोस्ट लिखा था। आप अपने सर्वर पर ASP.NET MVC स्थापित कर सकते हैं या आप यहां दिए गए चरणों का पालन ​​कर सकते हैं


संपादित करें: (jcolebrand द्वारा) मैं इस लिंक के माध्यम से गया था, तो नीचे विक्टर के रूप में एक ही मुद्दा था , इसलिए मेरा सुझाव है कि आप इन्हें जोड़ सकते हैं:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

6
नोट: जब आपके पास MVC4 (वर्तमान में बीटा) स्थापित है, तो आप उन DLL में से v1.0 को हथियाना चाहते हैं, आप System.Web.Helpers (कम से कम मुझे आवश्यकता है) को भी हथियाना चाहेंगे।
ट्रैकर

1
-1 आपका पोस्ट जिसे आप लिंक करते हैं, यह नहीं बताता कि कैसे Microsoft.eb.Infrastructure को वेब सर्वर पर प्रकाशन तंत्र के माध्यम से प्राप्त किया जा सकता है। एक सर्वर पर सीधे चीजों को स्थापित करने के बाद, तरह का sux।
मार्क रोजर्स

1
दृश्य स्टूडियो 2010 के साथ यह बहुत आसान हो गया है जैसा कि यहाँ बताया गया है: britishdeveloper.co.uk/2011/06/…
Tulp

या यहाँ यदि आप Web Deploy britishdeveloper.co.uk/2011/05/…
Jeroen K

मुझे बिन फ़ोल्डर को नली करना था और फिर फिर से प्रकाशित करना होगा, यदि आप डिप्लॉय पैकेज का उपयोग नहीं कर रहे हैं।
रॉबर्ट कोच

41

मैं उसी मुद्दे में भाग गया जैसे कि सिग्रीफिन्यूसा। संदर्भ के अलावा फिल का लेख बताता है: http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx । मैंने इन्हें जोड़ा:

* Microsoft.Web.Infrastructure
* System.Web.Razor
* System.Web.WebPages.Deployment
* System.Web.WebPages.Razor

गोडैडी तैनाती ने पूरी तरह से काम किया। कस्टम त्रुटियों को बंद करें और त्रुटियों को ठीक करने के लिए संदर्भ जोड़ें। जो आपको सही दिशा में ले जाए।


26

अपने वेब सर्वर पर सीधे MVC स्थापित करना एक विकल्प है, क्योंकि तब GAC में असेंबली स्थापित की जाएगी। आप असेंबलियों को भी तैनात कर सकते हैं, जो अंतिम रिलीज उपलब्ध होने तक आपके सर्वर को पूर्व-रिलीज़ असेंबली से साफ रखने में मदद कर सकता है।

फिल हैक ने कुछ दिनों पहले एक अच्छा लेख पोस्ट किया था कि अपने ऐप के साथ एमवीसी को कैसे तैनात किया जाए, इसलिए सीधे इंस्टॉल करना आवश्यक नहीं है:

http://www.haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx


25

मैं इसी मुद्दे में भाग गया GoDaddy साझा होस्टिंग पर अपने MVC3 रेजर वेब एप्लिकेशन को तैनात करने की कोशिश कर रहा हूं। कुछ अतिरिक्त। Dll हैं जिन्हें संदर्भित करने की आवश्यकता है। यहाँ विवरण: http://paulmason.biz/?p=108

मूल रूप से आपको @ Haacked के पद में सूचीबद्ध लोगों के अलावा निम्नलिखित के लिए संदर्भ जोड़ने और उन्हें स्थानीय रूप से वर्णित के रूप में तैनात करने के लिए सेट करना होगा।

  • Microsoft.Web.Infrastructure
  • System.Web.Razor
  • System.Web.WebPages.Deployment
  • System.Web.WebPages.Razor

धन्यवाद आदमी, मैन्युअल रूप से संदर्भ जोड़ने और फिर उन्हें स्थानीय रूप से तैनात करने के बाद MVC3 के लिए समस्या को ठीक किया!
स्टेफान्वड्स 10

इधर भी ऐसा ही है। उन अतिरिक्त DLL को जोड़ने पर अच्छा मार्गदर्शन। धन्यवाद!
माइक एल

इधर भी ऐसा ही है। GoDaddy पर नहीं, बल्कि मेरे कंपनी सर्वर पर, इसलिए यह केवल एक सामान्य मामला होना चाहिए।
TJKjaer

13

VS2010 में, समाधान एक्सप्लोरर में प्रोजेक्ट पर राइट क्लिक करें और 'डिपेंडेबल डिपेंडेंसी जोड़ें' चुनें। फिर निम्नलिखित संवाद में MVC संबंधित चेक बॉक्स की जाँच करें।

यह प्रोजेक्ट में '_bin_deployableAssemblies' फ़ोल्डर बनाता है जिसमें सभी .dll फाइलें होती हैं जो अन्य उत्तरों में उल्लिखित होती हैं। मेरा मानना ​​है कि तैनाती पैकेज बनाते समय ये बिन फ़ोल्डर में कॉपी हो जाते हैं।


9

सरल तय। VS2010 में, अपने MVC प्रोजेक्ट पर राइट क्लिक करें, "Add Deployable Dependencies ..." का चयन करें, अपने इच्छित विकल्पों का चयन करें और ok पर क्लिक करें।


8

त्वरित और सरल समाधान: मैंने Microsoft.AspNet.Mvc -Version 5.2.3 के साथ इस समस्या का सामना किया और इन सभी थ्रेड्स से गुजरने के बाद मुझे एक सरल समाधान मिला।

बस चरणों का पालन करें:

  1. अपने प्रोजेक्ट के लिए विजुअल स्टूडियो में NuGet पैकेज मैनेजर खोलें
  2. Microsoft.AspNet.Mvc के लिए खोजें
  3. जब पाया जाता है, तो इसे अनइंस्टॉल और अनइंस्टॉल करने के लिए कार्रवाई बदलें
  4. एक बार हो जाने के बाद, इसे फिर से स्थापित करें और इसे अभी आज़माएँ

यह स्वचालित रूप से सभी मुद्दों को संदर्भों के साथ ठीक कर देगा। नीचे चित्र देखें:

यहां छवि विवरण दर्ज करें


7

एक ही मुद्दा था और उन्होंने कहा कि सभी विधानसभा में जोड़ा गया है, लेकिन अभी भी एक ही त्रुटि है।

आपको " विशिष्ट संस्करण " बनाने की आवश्यकता है = गलत।

विशिष्ट संस्करण गलत होना चाहिए।


यदि आप सक्षम नहीं हैं तो वैकल्पिक रूप से आपको 'कॉपी लोकल' को 'ट्रू' पर स्विच करना चाहिए,
एस्फोटो

6

हम इसे जोड़ना चाहते हैं क्योंकि हम एक क्लास लाइब्रेरी बना रहे हैं जो इसका उपयोग करता है।

मेरे लिए यह यहाँ है ...

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies


3

यदि आपका एक होस्टिंग प्रदाता का उपयोग नहीं कर रहा है, और आपके पास स्थापित करने के लिए सर्वर तक पहुंच है ... तो MVC 3 अपडेट टूल इंस्टॉल करें, ऐसा करें ... यह आपको विंडोज़ 2003 सर्वर / IIS6 मशीन पर घंटों की समस्याओं से बचाएगा। , मैंने इस पृष्ठ पर यहाँ टिप्पणी की Nuget.Core.dll संस्करण संख्या बेमेल


3

हैक पोस्ट के अलावा, हंसेलमैन का भी एक समान पद है। बिन डंपिंग ASP.NET MVC 3 रेजर के साथ विंडोज सर्वर के लिए MVC स्थापित किए बिना

मेरे लिए, "कॉपी लोकल = ट्रू" सॉल्यूशन अपर्याप्त था क्योंकि मेरी वेबसाइट के प्रोजेक्ट रेफरेंस में वे सभी डीएल शामिल नहीं थे जो गायब थे। जैसा कि स्कॉट ने अपने पोस्ट में उल्लेख किया है, मुझे अपने विकास बॉक्स पर निम्नलिखित फ़ोल्डर से अतिरिक्त dll प्राप्त करने की आवश्यकता है: C: \ Program Files (x86) \ Microsoft ASP.NET \ ASP.NET वेब पेज \ v1.0 \ Assemblies। त्रुटि संदेश ने मुझे सूचित किया कि कौन सा dll गायब था (System.Web.Infrastructure, System.Web.Razor, आदि) मैंने प्रत्येक लापता dll को एक-एक करके जोड़ना जारी रखा, जब तक कि यह काम नहीं करता।


3

मैंने इसे Visual Studio 2015 में ठीक करने के लिए "Update-Package -reinstall Microsoft.AspNet.Mvc" किया है।


3

एक महत्वपूर्ण विचार web.config फ़ाइल है, कुछ पैकेज आपके बाइंडिंग पुनर्निर्देशों को रोक सकते हैं, जो कहर पैदा कर सकते हैं (बदमाश पैकेज घर के पैकेज में था कि मैंने पैकेज से web.config को हटाया नहीं है या पैकेज में web.config सुनिश्चित कर रहा है। कोई भी बाध्यकारी पुनर्निर्देशन नहीं है। उदाहरण के लिए डुप्लिकेट और गलत नोड को हटाकर इसे हल करता है

    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>


                <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
                <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>


                <assemblyIdentity name="System.Web.Helpers" 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="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.Cookies" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="3.0.1.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.3.2.0" newVersion="3.3.2.0"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2"/>
            </dependentAssembly>
            <dependentAssembly>
                <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-1.4.9.5" newVersion="1.4.9.5"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>

8 से 24 लाइनों को हटाकर बिल्ड को ठीक करता है।


2

इसके अलावा अपने व्यू फ़ोल्डर के अंदर web.config में असेंबली के संस्करण की जांच करें और सुनिश्चित करें कि यह मेल खाता है। मैं कभी-कभी भूल जाता हूं कि उस स्थान पर कोई दूसरा web.config है।



2

मुझे प्रोजेक्ट को किसी अन्य समाधान पर ले जाने के बाद असेंबली फ़ाइलों का एक गुच्छा के साथ एक ही समस्या थी।

मेरे लिए, web.configफ़ाइल इस असेंबली को जोड़ने की कोशिश कर रही थी:

<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

सोचा कि परियोजना का संदर्भ संस्करण की ओर इशारा कर रहा है 3.0.0.0(संदर्भ पर क्लिक करें और गुणों के नीचे स्क्रॉल करें)। इसलिए मैंने अभी संदर्भ संस्करण में बदलाव किया हैweb.config फ़ाइल ।

मुझे नहीं पता कि क्या यह किसी प्रकार का एक बग था। अन्य सभी संदर्भों को जोड़ने के साथ समस्या यह थी कि संदर्भ फ़ाइल में दिखाई दिए, लेकिन यह वास्तव में परियोजना (समाधान एक्सप्लोरर के अंदर) में संदर्भित नहीं किया गया था और आवश्यक फाइलों को बाकी परियोजना फाइलों के साथ कॉपी नहीं किया गया था शायद नहीं होने के कारण"copy local = true"

अब, मैं इन असेंबलियों को जोड़ने योग्य असेंबली में खोजने में सक्षम था (संदर्भ को राइट क्लिक करके और उन्हें असेंबली या एक्सटेंशन से जोड़ने की कोशिश कर रहा था)। इसके बजाय मैंने एक नया MVC समाधान बनाया, जिसमें सभी असेंबली और संदर्भों को जोड़ा गया था, और समाधान एक्सप्लोरर में नई परियोजनाओं के संदर्भों के तहत उन्हें ढूंढना और संदर्भ के लिए गुण विंडो में अपना रास्ता खोजना।

तब मैंने सिर्फ उन पुस्तकालयों की नकल की, जिनकी मुझे दूसरी परियोजना में जरूरत थी और उन्हें संदर्भित किया।


1

सब कुछ करने की कोशिश करने के बाद भी और फिर भी यह विफल रहा, यह मेरा समाधान था: मुझे याद आया कि मेरे विज़ुअल स्टूडियो में एमवीसी संस्करण को अपडेट करने में पिछली बार त्रुटि हुई थी और इसलिए मैंने प्रोजेक्ट को दूसरे विज़ुअल स्टूडियो (अलग-अलग कंप्यूटर) से चलाया और dll-s अपलोड किया और यह काम किया। शायद यह किसी की मदद करेगा ...


0

मैं .net परियोजनाओं के साथ जेनकींस का उपयोग कर रहा हूं और MVC 4 संदर्भों के साथ परेशानी थी।

मैं अंत में .Net संदर्भ खोज इंजन कार्यक्षमता का उपयोग करके रजिस्ट्री के आधार पर अपने मुद्दे को हल करता हूं:

"HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft.NETFramework \ v2.0.50727 \ AssemblyFoldersEx"

आप उदाहरण के लिए "c: \ myreferenceedir" डिफ़ॉल्ट कुंजी सेट उपकुंजी एट बना सकते हैं।

इसने मुझे MVC संस्करणों और ASP.net वेब पृष्ठों के साथ बचाया।

"संदर्भ जोड़ें संवाद" में संदर्भ जोड़ने के लिए उपयोगी

http://dhakshinamoorthy.wordpress.com/2011/12/04/how-to-register-your-net-assembly-in-gac-and-make-it-show-in-add-reference-dialog/


0

जैसा कि दूसरों ने उल्लेख किया है, इन रेफ़रेंस को Copy Localसेट के साथ विज़ुअल स्टूडियो में जोड़ें true। (मुझे भी जोड़ना था System.Web.Webpages)

Microsoft.Web.Infrastructure
System.Web.Razor
System.Web.WebPages.Deployment
System.Web.WebPages.Razor
System.Web.Webpages

0

मैंने "Microsoft ASP.NET रेजर" प्रबंधित NuGet संकुल का उपयोग करके जोड़ा।

Add References के साथ, किसी कारण से, मेरे पास केवल System.Web.Helpers 1.0.0 और 2.0.0 था ... लेकिन 3.0.0 नहीं।

एक अन्य विकल्प, जो मेरे लिए काम करता है, System.Web.Mvc और System.Web.Http के संदर्भों को हटाने के लिए था ... फिर उन्हें csproj फ़ाइल में पैकेज स्थानों पर ब्राउजिंग करके (आप सबसे आसानी से परियोजना को संपादित कर सकते हैं) एक पाठ संपादक):

<Reference Include="System.Web.Http">
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http.dll</HintPath>

<Reference Include="System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <HintPath>..\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll</HintPath>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.