GlobalConfiguration.Configure (वेब ​​API 2 और .NET 4.5.1 माइग्रेशन के बाद मौजूद नहीं)


148

मैंने हाल ही में अपने प्रोजेक्ट को .NET 4.5.1 और वेब एप 2 पर माइग्रेट करने के लिए इस गाइड का अनुसरण करना शुरू किया ।

MS डेवलपर रिक एंडरसन से सबसे पहली बात यह है कि आप बदलाव करें:

WebApiConfig.Register(GlobalConfiguration.Configuration);

सेवा

GlobalConfiguration.Configure(WebApiConfig.Register);

Global.asax फ़ाइल में। फिर भी यह मुझे एक त्रुटि दे रहा है जब मैं बनाने की कोशिश करता हूं:

त्रुटि 1 'System.Web.Http.GlobalConfiguration' में 'कॉन्फ़िगर' की परिभाषा नहीं है

मेरा प्रोजेक्ट अभी MVC 5 और वेब एपी 2 और .NET 4.5.1 पर है, फिर भी मुझे लगता है कि System.Web.Http अभी भी है। यह 4.0 संस्करण है।

मैं इसे कैसे ठीक कर सकता हूं?

धन्यवाद।

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

यहाँ मेरी विधानसभा बाइंडिंग हैं:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  <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>
  <!--
  <dependentAssembly>
    <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="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
  </dependentAssembly>
  <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> -->
</assemblyBinding>

शीर्ष पर टिप्पणी करने के बाद सब कुछ टिप्पणी की गई क्योंकि मुझे त्रुटि मिल रही थी:

चेतावनी 2 एक ही निर्भर विधानसभा के विभिन्न संस्करणों के बीच संघर्ष पाया गया जिसे हल नहीं किया जा सका। ये संदर्भ विरोध बिल्ड लॉग में सूचीबद्ध होते हैं जब लॉग वर्बोसिटी को विस्तृत करने के लिए सेट किया जाता है।

और हार्ड बाइंडिंग से छुटकारा पाना उसको ठीक कर रहा था।


1
क्या आपने Microsoft.AspNet.Web.Helpers.Mvcपहले अनइंस्टॉल किया है ?
ब्लेज़

मेरे जवाब को देखें stackoverflow.com/a/20653546/3114457 यह आपकी समस्याओं को प्रवास के साथ ठीक करना चाहिए
Livius

5
कृपया सही उत्तर के रूप में stackoverflow.com/a/21514748/2343 अंकित करें !
समीर अलीभाई

जवाबों:


271

इसे system.web.http.webhost की जरूरत है जो इस पैकेज का हिस्सा है। मैंने निम्नलिखित पैकेज स्थापित करके इसे ठीक किया:

PM> Install-Package Microsoft.AspNet.WebApi.WebHost 

या इसके लिए nuget में खोजें https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0


एपीआई नियंत्रक को जोड़ने पर स्वचालित रूप से जोड़ा गया था। मुझे इसे चालू करने के लिए VS2015 को फिर से शुरू करना पड़ा। मैंने इस पृष्ठ पर अन्य सभी चीज़ों की भी सिफारिश की है ताकि यह सुनिश्चित न हो कि वास्तविक समस्या क्या थी।
पायोत्र कुला

6
यह मेरे लिए काम नहीं किया। पैकेज पहले से ही मेरी परियोजना में स्थापित है।
शिम्मी वेइटहैंडलर

दिलचस्प यह था कि वेबहोस्ट पहले से इंस्टॉल था और फिर भी काम नहीं कर रहा था, फिर मैंने उस ऑर्डर को बदल दिया, जिसमें GlobalConfiguration.Configure(WebApiConfig.Register);GlobalRasax को AreaRegademy के बाद सिर्फ टॉप में डाला गया था, और यह ठीक काम किया।
पेड्रोसोकी

उन्होंने ऐसा क्यों नहीं लिखा? मुझे आपका उत्तर खोजने में आधे घंटे का समय लगता है
होमायॉउन बेहजडियन

Microsoft.AspNet.WebApi.WebHostनवीनतम संस्करण
पीटर वैन केकेम

86

इन विचारों में से किसी ने एमवीसी 5.2.2 का उपयोग करके मेरी परियोजना में मदद नहीं की।

  • System.web.Http 5.2.2 पहले से स्थापित था
  • संकुल फ़ोल्डर को हटाना और सभी NuGet पुस्तकालयों को पूरी तरह से फिर से डाउनलोड करना कुछ नहीं किया
  • Web.config में पहले से System.Web.Http के लिए एक आश्रित प्रवेश प्रविष्टि थी

एक पुनर्स्थापना मजबूर करने से समस्या ठीक हो गई। NuGet पैकेज प्रबंधक कंसोल से:

update-Package -reinstall Microsoft.AspNet.WebApi.WebHost


1
मेरे पास एक ही समस्या थी, लेकिन इसे फिर से ठीक करना ठीक नहीं था, कम से कम यह ऐसा लग रहा था और मुझे पागल कर रहा था, मुझे वीएस2015 को फिर से शुरू करना पड़ा और यह हल हो गया।
पायोत्र कुला

ऐसा लगता है कि पुनः आरंभ बनाम2013 के संयोजन ने मेरे लिए समस्या का समाधान कर दिया
राम

43

GlobalConfigurationवर्ग Microsoft.AspNet.WebApi.WebHostनगेट पैकेज का हिस्सा है ... क्या आपने इस पैकेज को वेब एपीआई 2 में अपग्रेड किया है?


1
हाँ। इसका संस्करण 5.0.0
nzondlo

1
क्या आपको अपने web.config में कोई असेंबली बाइंडिंग रीडायरेक्ट होता है? यदि हाँ, तो क्या आप उन्हें साझा कर सकते हैं ... मैं विशेष रूप से देख रहा हूँ कि क्या System.Web.Http * असेंबली से संबंधित हैं ..
Kiran Challa

मैंने अभी अपनी सभी असेंबली बाइंडिंग पोस्ट की हैं।
nzondlo

30

अनुपलब्ध GlobalConfiguration के लिए Install-Package Microsoft.AspNet.WebApi.WebHost के साथ प्रोजेक्ट को अपडेट करने के लिए nuget प्राप्त करने के लिए पैकेज मैनेजर कंसोल का उपयोग करने के साथ - साथ ,

मुझे System.Web.Http का उपयोग कर गुम होने के लिए इंस्टॉल-पैकेज Microsoft.AspNet.WebApi.SelfHost की आवश्यकता थी ;


1
क्या आप थोड़ा और समझा सकते हैं?
डायटर मेमेकेन

10

आप जाँच सकते हैं कि आपकी परियोजना Microsoft.AspNet.WebApi.WebHostस्थापित है। जैसा कि यह पता चला है, मेरे मामले में, Microsoft.AspNet.WebApi.WebHostकिसी अन्य परियोजना में स्थापित किया गया था, लेकिन उस विशेष परियोजना को नहीं जो इसकी आवश्यकता थी। अपने संकुल में .config, जांचें कि इस तरह की एक पंक्ति है:

<package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" />

यदि वह मौजूद नहीं है, तो आपने Microsoft.AspNet.WebApi.WebHostअपनी परियोजना में स्थापित नहीं किया है। आप या तो Nuget पैकेज मैनेजर का उपयोग करके या पैकेज मैनेजर कंसोल के माध्यम से इंस्टॉल कर सकते हैं। पैकेज प्रबंधक कंसोल से स्थापित करने के लिए, यह कमांड चलाएँ:

Install-Package Microsoft.AspNet.WebApi.WebHost

5

GlobalConfiguration.Configure API "Microsoft.AspNet.WebApi.WebHost" संस्करण = "5.2.3" में उपलब्ध है

और "Microsoft.AspNet.WebApi.WebHost" संस्करण = "4.0.0" में नहीं


3

यदि Microsoft Microsoft स्थापना रद्द करने और स्थापित करने के बाद समस्या बनी रहती है। Www.bApi.WebHost तब भी web.config में Globalconfiguration को काम करने के लिए फॉलोइंग जोड़ें

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

यह पहले से ही मेरे web.config में था। अभी भी जारी (वीएस २०१५)
कुला


1

मेरी समस्या यह थी कि नगेट पैकेज मैनेजर ने वास्तविक अपडेट नहीं किया था, लेकिन फाइलों में पुराने संस्करणों के संदर्भ थे, इसलिए मैंने पहले सभी स्थापित पीवीसी संबंधित पैकेजों (रेजर और वेब एप सहित) को हटा दिया और फिर उन्हें फिर से स्थापित किया और संस्करण को अपडेट किया। संस्करण 3.0.0 के विचारों / web.config में रेजर।


1

इनमें से किसी भी समाधान ने मेरे लिए काम नहीं किया। मेरे पास नगेट पैकेजों की एक उलझन थी जो एक दूसरे पर परिपत्र निर्भरता के कारण अद्यतन नहीं कर सकते थे।

मैं इस पुराने ढंग को ठीक करना चाहूंगा। मैंने एक नया MVC / वेब एपी प्रोजेक्ट बनाया और मैन्युअल रूप से कॉपी किया गया System.Web.Httpऔर System.Web.Http.WebHostनए प्रोजेक्ट से एक्साइजिट सॉल्यूशन के Nuget फोल्डर में। वहां से मैंने ओएमजी, "ब्राउज़िंग" द्वारा संदर्भों को अद्यतन किया और समस्या को ठीक किया।


0

इसने इस समस्या को Global.asax.cs फ़ाइल में नामस्थान जोड़कर हल किया।

System.Web.Http का उपयोग कर;

इससे समस्या हल हो गई।

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