[c#] 2012 से 2013 तक अपडेट के बाद फ़ाइल या असेंबली 'System.Web.Http 4.0.0 लोड नहीं हो सका


Answers

फ़ाइल या असेंबली 'System.Web.Http' लोड नहीं कर सका करने के लिए वेब एपीआई 2.1 वेबहोस्ट स्थापित करने के लिए NuGet का उपयोग करें।

संदर्भ में समाधान एक्सप्लोरर में राइट क्लिक करें और nuget संकुल प्रबंधित करें का चयन करें। (अगर वहां नूजेट स्थापित नहीं है)

बाएं तरफ NuGet पैकेज विंडो का प्रबंधन करने के लिए वेब होस्ट के लिए शीर्ष दाएं खोज में ऑनलाइन क्लिक करें और माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.1 वेब होस्ट स्थापित करें। (स्थापित करने के बाद इंस्टॉल बटन एक हरे रंग की जांच में बदल जाएगा)

इसके बाद परियोजना फिर से लोड हो जाएगी और जब इसे फिर से बनाया जाएगा तो त्रुटि हल हो जाएगी और परियोजना डीबग और रन हो जाएगी। त्रुटि चली जाएगी और आप हो सकते हैं 'संसाधन नहीं मिला। बस यूआरएल संलग्न करें (लोकहोस्ट से पूर्व: 52088 / स्थानीयहोस्ट: 52088api / उत्पादों)

आपका सवाल अच्छा था और मेरी मदद की।

उम्मीद है कि यह जवाब मदद करता है!

Question

मैंने अपग्रेड किया था। http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2

मुझे त्रुटि मिलती है। क्या किसी और को यह त्रुटि मिली है?

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

फ़ाइल या असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)
विवरण: वर्तमान वेब अनुरोध के निष्पादन के दौरान एक अनचाहे अपवाद हुआ। त्रुटि के बारे में अधिक जानकारी के लिए और जहां यह कोड में उत्पन्न हुआ, कृपया स्टैक ट्रेस की समीक्षा करें।

अपवाद विवरण: System.IO.FileLoadException: फ़ाइल या असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)

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

रेखा 48: रेखा 49: रेखा 50:} रेखा 51: रेखा 52: संरक्षित शून्य आवेदन_BeginRequest (ऑब्जेक्ट प्रेषक, EventArgs ई)

स्रोत फ़ाइल: डी: \ एसएम \ 7.4 टेस्ट \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs लाइन: 50

असेंबली लोड ट्रेस: ​​निम्नलिखित जानकारी सहायक हो सकती है कि क्यों असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' लोड नहीं किया जा सका।

=== पूर्व-बाध्य राज्य की जानकारी === LOG: DisplayName = System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35 (पूरी तरह से निर्दिष्ट) लॉग: Appbase = फ़ाइल: /// डी: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ LOG: प्रारंभिक PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin कॉलिंग असेंबली: थर्डपार्टी वेबैपी, संस्करण = 1.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = शून्य। === लॉग: यह बाइंड डिफ़ॉल्ट लोड संदर्भ में शुरू होता है। लॉग: एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल का उपयोग करना: डी: \ एसएम \ 7.4 टेस्ट \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config LOG: होस्ट कॉन्फ़िगरेशन फ़ाइल का उपयोग करना: सी: \ उपयोगकर्ता \ michalc \ दस्तावेज़ \ IISExpress \ config \ aspnet.config LOG: मशीन कॉन्फ़िगरेशन का उपयोग करना सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v4.0.30319 \ config \ machine.config से फ़ाइल। लॉग: पोस्ट-पॉलिसी संदर्भ: सिस्टम.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35 LOG: नई URL फ़ाइल डाउनलोड करने का प्रयास: /// C: /Windows/Microsoft.NET/Framework/v4 .0.3031 9 / अस्थायी एएसपी.नेट फ़ाइलें / रूट / 9184b2ea / c6d4b139 / System.Web.Http.DLL। लॉग: नई यूआरएल फ़ाइल डाउनलोड करने का प्रयास: /// सी: /विंडोज़ / माइक्रोसॉफ्ट.NET/Framework/v4.0.30319/ समकालीन एएसपी.नेट फ़ाइलें / रूट / 9184 बी 2 ईए / सी 6 डी 4 बी 139 / सिस्टम.Web.Http / System.Web.Http .DLL। लॉग: नई यूआरएल फ़ाइल डाउनलोड करने का प्रयास: /// डी: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL। डब्लूआरएन: असेंबली नाम की तुलना में विसंगति हुई: मेजर वर्जन ईआरआर: असेंबली के सेटअप को पूरा करने में विफल (एचआर = 0x80131040)। जांच समाप्त हो गई।

स्टैक ट्रेस:

[FileLoadException: फ़ाइल या असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई भी लोड नहीं हो सका। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)] थर्डपार्टी WebAPI.WebApiAplication.Aplication_Start () में डी: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50

[HttpException (0x80004005): फ़ाइल या असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई लोड नहीं हो सका। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)]
System.Web.HttpAplicationFactory.EnsureAppStartCalledForIntegratedMode (HttpContext संदर्भ, HttpAplication ऐप) +9935033
System.Web.HttpAplication.RegisterEventSubscriptionsWithIIS (IntPtr appContext, HttpContext संदर्भ, MethodInfo [] हैंडलर) +118
System.Web.HttpAplication.InitSpecial (HttpAplicationState स्थिति, MethodInfo [] हैंडलर, IntPtr appContext, HttpContext संदर्भ) +172
System.Web.HttpAplicationFactory.GetSpecialAplicationInstance (IntPtr appContext, HttpContext संदर्भ) +336
System.Web.Hosting.PipelineRuntime.InitializeAplication (IntPtr AppContext) +296

[HttpException (0x80004005): फ़ाइल या असेंबली 'System.Web.Http, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 31bf3856ad364e35' या इसकी निर्भरताओं में से कोई लोड नहीं हो सका। स्थित असेंबली की स्पष्ट परिभाषा असेंबली संदर्भ से मेल नहीं खाती है। (HRESULT से अपवाद: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit (HttpContext संदर्भ) +9913572 सिस्टम.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext संदर्भ) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequest wr, HttpContext संदर्भ) +254

संस्करण जानकारी: माइक्रोसॉफ्ट .NET फ्रेमवर्क संस्करण: 4.0.3031 9; एएसपी.नेट संस्करण: 4.0.30319.18408




मेरे लिए समस्या का हल माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.2 हेल्प पेज और माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.2 ओविन पैकेज को दोबारा स्थापित कर रहा था। मैंने एक ही समय में दोनों को फिर से स्थापित किया, लेकिन मुझे लगता है कि यह वह मुद्दा था जिसने इस मुद्दे को ठीक किया था।

मैंने यहां पेश किए गए समाधानों में से कुछ पहले कोशिश की लेकिन इससे मदद नहीं मिली, फिर मैंने अपनी निर्भरताओं की तुलना एक परियोजना में (प्लुरसाइट पर एक कोर्स से) की तुलना में की थी और उपरोक्त दो निर्भरताएं निम्न संस्करण (5.0.0 थीं) ) इसलिए मैंने उन्हें 5.2.3 तक अपडेट किया और यह काम करना शुरू कर दिया।




यह किसी की मदद कर सकता है।

मैंने एमवीसी 4 ऐप के साथ जाने का फैसला किया।

रन परियोजना, काम किया

फिर कुछ पैकेज स्थापित किए गए जैसे,
माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.2 (4 पैकेज)
माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.2 सहायता पृष्ठ
माइक्रोसॉफ्ट एएसपी.नेट वेब एपीआई 2.2 ओविन

प्रोजेक्ट चलाएं, प्रश्न में उल्लिखित एक ही त्रुटि

उपाय:

Web.config में

 <dependentAssembly>
      <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.2.3.0" />
 </dependentAssembly>


समस्या सुलझ गयी

लेकिन फिर, कुछ हॉटफिक्स त्रुटि मिली, इसे हल करने के लिए, अपने एमवीसी 4 प्रोजेक्ट के फ़ोल्डर को देखने के लिए, second वेब.कॉन्फिग फ़ाइल ढूंढें और 2.0.0.0 से 3.0.0.0 तक संस्करण को नीचे दिखाए गए अनुसार बदलें

<configSections>
    <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>
  </configSections>



या आप NuGet पैकेज प्रबंधक कंसोल से ऐसा कर सकते हैं

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

और फिर आप System.Web.Http.WebHost 5.0 का संदर्भ जोड़ पाएंगे




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




एएसपी.नेट संस्करण: 4.0.30319.18408 .Net4.5 और System.Web.Http संस्करण = 4.0.0.0 से संबंधित है .NET4.0 के लिए संगत है। तो आपके पास जो संस्करण हैं वे संगत नहीं हैं। आपको System.Web.Http को संस्करण 5.0.0.0 पर अपडेट करना चाहिए, जो .Net4.5 के साथ संगत है




मैंने इस समस्या को हल कर दिया है जो nuget को nuget चलाने के बाद मेरे web.config किए गए परिवर्तनों को वापस कर रहा है। पिछले वर्किंग वर्जन में बदलावों को वापस लाएं।

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
  </dependentAssembly>



मेरा मुद्दा भी ऐसा ही था। सब कुछ पहले काम कर रहा था। यह मूल रूप से कुछ रूपों के लिए वेब प्रपत्रों का उपयोग करके और बाद में अतिरिक्त वेब एपीआई पर बनाया गया था।

  • Microsoft.AspNet.WebApi पैकेज को अनइंस्टॉल करने, इंस्टॉल करने और पुनर्स्थापित करने का प्रयास किया।
  • समाधान से संकुल फ़ोल्डर को हटाने और VG में NuGet को पुनर्स्थापित करने का प्रयास किया।
  • व्यक्तिगत असेंबली संदर्भ (संदर्भों के तहत) को हटाने और संकुल को पुनर्स्थापित करने का प्रयास किया।
  • कई उत्तरों में उल्लिखित web.config में 5.2.3.0 संस्करण को बाध्यकारी रीडायरेक्ट जोड़ने का प्रयास किया। मेरे लिए कुछ भी काम नहीं किया।

विजुअल स्टूडियो में क्या काम किया गया था, रिलीज से डीबग तक प्रकाशित प्रोफ़ाइल सेटिंग्स बदलें। अजीब, लेकिन यह वही काम किया। तो यहां साझा करना।




इस मुद्दे को हल करने का उचित समाधान चरणों का पालन करना है

। यदि आपके पास पुराना संस्करण 15.5.4 (वैकल्पिक) है तो विजुअल स्टूडियो अपडेट करें

  1. Web.config से सभी बाध्यकारी रीडायरेक्ट हटाएं

  2. इसे csproj फ़ाइल में जोड़ें:

 <PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
  1. बनाएँ।

  2. बिन फ़ोल्डर में, एक (WebAppName).dll.config फ़ाइल होनी चाहिए।

  3. इसमें रीडायरेक्ट होना चाहिए। इन्हें web.config पर कॉपी करें

  4. ऊपर से csproj फ़ाइल से छीन ऊपर निकालें

  5. यह काम करना चाहिए

Detailed Blog




 Installing NuGet package ASP.NET.MVC solved the issue for me. 
 To install package.
 - Right click on project 
 - Select "Manage NuGet Packages"
 - Select Online->Nuget.org from left menu
 - select "Microsoft ASP.NET MVC"
 - Click Install

 If you have already installed package earlier, please update the package by selecting Updates from left menu and then selecting "Microsoft ASP.NET" and click Update.




मैं बस लापता असेंबली पर Copy Local = true और यह काम किया। यह निश्चित रूप से अनुपलब्ध संदर्भ (जो त्रुटि संदेश में कहा गया है) पर राइट क्लिक करके होता है और गुणों का चयन करता है; नीचे के अनुसार:

इसके बाद इसे एक समस्या हल करनी चाहिए क्योंकि समस्या के कारण एक से अधिक असेंबली हो सकती हैं - मैंने जो किया है, मैंने सभी असेंबली चुने हैं और उन पर राइट क्लिक करें; चयनित गुण; और उन्हें स्थानीय = सत्य कॉपी करने के लिए सेट करें; और फिर पुन: प्रकाशित करें।




मेरे मामले में, मैं वास्तव में अपने web.config पूरी तरह याद कर रहा था, जिसमें उचित बाध्यकारी रीडायरेक्ट थे। web.config पुनर्स्थापित करने से त्रुटि हल हो गई।




Related