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




asp.net-web-api odata (17)

मैंने अपग्रेड किया था। 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


आपको असेंबली रीडायरेक्ट जोड़ने की जरूरत है:

<configuration>

   ....

   <runtime>
      <assemblyBinding>
    <dependentAssembly>
        <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.0.0" />
      </dependentAssembly>
      </assemblyBinding>
   </runtime>

   ...

</configuration>

सबसे अधिक संभावना है कि आपको वेबहोस्टिंग जैसे कुछ और असेंबली के लिए ऐसा करना होगा।


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

। यदि आपके पास पुराना संस्करण 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


जब मैंने वेब एपीआई 2.2 स्थापित किया तो यह त्रुटि शुरू हुई। मैंने इसे web.config में जोड़ा और यह मेरी समस्या हल हो गई।

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

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


बस एक स्पष्ट लेकिन संभावित सहायक संकेत .... यह जांचना याद रखें कि आपके वेब कॉन्फिग असेंबली बाध्यकारी में निर्दिष्ट नया संस्करण वही संस्करण है जिसे आप अपने प्रोजेक्ट संदर्भों में संदर्भित करते हैं। (यानी जैसा कि मैंने यह लिखा है ... यह 5.1.0.0 होगा यदि आपने हाल ही में System.Web.Http पर NUGet किया है


मुझे एक ही समस्या थी और पैकेज को पुनर्स्थापित करना काम नहीं करता है।

मेरा आवेदन लोकलआईआईएस (आईआईएस एक्सप्रेस नहीं) में चलता है। मैं असेंबली लोड ट्रेस को सक्षम करता हूं और यह पता लगाता हूं कि यह नीचे Temp catche से System.Web.Http लोड लोड करना चाहता है। तो इसमें सभी पकड़ फ़ोल्डर हटा दें

सी: \ विंडोज \ माइक्रोसॉफ्ट.NET \ Framework \ v4.0.30319 \ अस्थायी एएसपी.नेट फ़ाइलें [मेरा आवेदन]


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

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

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


मेरे पास यह डब्ल्यूसीएफ सेवा से था। मेरे लिए (जैसा कि मुद्दा स्थानीय देव में प्रदर्शित था), मुझे बस समाधान के तहत बिन फ़ोल्डर की सामग्री को हटाना पड़ा। पुनर्निर्माण एक बार फिर ठीक काम करता है।


मेरे लिए यह केवल उत्पादन मशीन पर इस त्रुटि के साथ दुर्घटनाग्रस्त हो रहा था, न कि स्थानीय मशीन पर; / bin फ़ोल्डर की सामग्री को हटाने और फिर इसे पुन: उत्पन्न करने के लिए क्या हल किया गया था।


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

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


मैं मुख्य अनुप्रयोग के app.config में असेंबली संदर्भ जोड़कर System.Net.HTTP के साथ समान समस्या हल कर सकता हूं।

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.1.1.1" newVersion="4.0.0.0" />
      </dependentAssembly></runtime>

मैंने NuGet पैकेज को पुनर्स्थापित करके इसे ठीक किया, जो टूटी निर्भरताओं को सुधारता है। पैकेज प्रबंधक से, चलाएं:

Update-Package Microsoft.AspNet.WebApi -reinstall

मैंने कुछ भी नहीं किया, बस बिन फ़ोल्डर डीएलएल को ऑनलाइन तैनात बिन फ़ोल्डर में कॉपी किया और यह मेरे लिए ठीक काम किया।


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

मैंने एमवीसी 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>

हाँ!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

यह मेरे मामले में ठीक काम करता है .... thnkz


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

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

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

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

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

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


<dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.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.0.0.0" />
</dependentAssembly>




visual-studio-2013