GlobalConfigration.Configure () ওয়েব API 2 এবং .NET 4.5.1 মাইগ্রেশনের পরে উপস্থিত নেই


148

আমি সম্প্রতি আমার প্রকল্পটি নেট .৪.৪.১ এবং ওয়েব এপি ২ তে স্থানান্তর করতে এই গাইড অনুসরণ করতে শুরু করেছি।

এমএস ডেভেলপার রিক অ্যান্ডারসন আপনাকে প্রথমে যে কাজটি করতে বলেছিলেন তা হ'ল পরিবর্তন:

WebApiConfig.Register(GlobalConfiguration.Configuration);

প্রতি

GlobalConfiguration.Configure(WebApiConfig.Register);

গ্লোবাল.এক্স্যাক্স ফাইলটিতে। তবুও এটি তৈরি করার চেষ্টা করার পরে এটি আমাকে একটি ত্রুটি দিচ্ছে:

ত্রুটি 1 'System.Web.Http.GlobalConfigration' 'কনফিগার' জন্য একটি সংজ্ঞা নেই

আমার প্রকল্পটি বর্তমানে এমভিসি 5 এবং ওয়েব অপি 2 এবং নেট 4.5.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 এটি আপনার অভিবাসন নিয়ে আপনার সমস্যার সমাধান করা উচিত
লিভিয়াস

5
দয়া করে সঠিক উত্তর হিসাবে স্ট্যাকওভারফ্লো.com/a/21514748/2343 চিহ্নিত করুন !
সমীর আলিভাই

উত্তর:


271

এটির জন্য system.web.http.webhost দরকার যা এই প্যাকেজের অংশ। নিম্নলিখিত প্যাকেজটি ইনস্টল করে আমি এটি ঠিক করেছি:

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

বা নিউজেটে https://www.nuget.org/packages/Mic Microsoft.AspNet.WebApi.WebHost/5.1.0 এ এটি অনুসন্ধান করুন


আমি যখন একটি এপিআই নিয়ন্ত্রণকারী যুক্ত করেছি তখন স্বয়ংক্রিয়ভাবে যুক্ত হয়েছিল। এটি চালু রাখতে আমাকে VS2015 পুনরায় চালু করতে হয়েছিল। আমি এই পৃষ্ঠায় প্রস্তাবিত অন্য সমস্ত কিছুও করেছি তাই আসল সমস্যাটি কী তা নিশ্চিত হন না।
পাইটর কুলা

6
এটি আমার পক্ষে কাজ করেনি। প্যাকেজটি ইতিমধ্যে আমার প্রকল্পে ইনস্টল করা আছে।
শিমি ওয়েটজ্যান্ডলার

মজার বিষয় হ'ল ওয়েবহোস্টটি ইতিমধ্যে ইনস্টল করা ছিল এবং এখনও কাজ করছে না, তারপরে আমি GlobalConfiguration.Configure(WebApiConfig.Register);এয়াররেজিস্ট্রেশন করার পরে গ্লোবাল.এক্সএক্সে সন্নিবেশ করা হয়েছে এমন ক্রমটি পরিবর্তন করেছি এবং এটি ঠিক কাজ করেছে।
পেড্রোসুকি

কেন তারা এ জাতীয় কিছু লিখেনি? আপনার উত্তরটি পেতে আমার আধা ঘন্টা সময় লাগে
হোমায়ুন বেহজাদিয়ান

Microsoft.AspNet.WebApi.WebHostসর্বশেষ সংস্করণে আপডেট করার পরে আমার জন্য কাজ করেছেন
পিটার ভ্যান কেকেম

86

এমভিসি 5.2.2 ব্যবহার করে এই ধারণাগুলির কোনওটিই আমার প্রকল্পে সহায়তা করেনি।

  • System.web.Http 5.2.2 ইতিমধ্যে ইনস্টল করা আছে
  • প্যাকেজ ফোল্ডারটি মোছা এবং সমস্ত নিউগেট লাইব্রেরি সম্পূর্ণরূপে পুনরায় ডাউনলোড করা কিছুই করেনি
  • ওয়েব.কনফিগের ইতিমধ্যে System.Web.Http এর জন্য নির্ভরশীল অনাবশ্যক এন্ট্রি রয়েছে

একটি পুনরায় ইনস্টল করতে বাধ্য করা সমস্যাটি সংশোধন করেছে। নিউগেট প্যাকেজ ম্যানেজার কনসোল থেকে:

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


1
আমারও একই সমস্যা ছিল তবে পুনরায় ইনস্টল করা এটি ঠিক করে নি, কমপক্ষে এটি দেখতে দেখতে এমন ছিল এবং আমাকে বাদাম চালাচ্ছিল, আমাকে ভিএস ২০১৫ পুনঃসূচনা করতে হয়েছিল এবং এটি সাজানো হয়েছে।
পাইটর কুলা

পুনঃসূচনা vs2013 + পুনরায় ইনস্টল করার সংমিশ্রণটি আমার জন্য সমস্যার সমাধান করেছে বলে মনে হচ্ছে
রাম

43

GlobalConfigurationক্লাসটি Microsoft.AspNet.WebApi.WebHostনুগেট প্যাকেজের অংশ ... আপনি কি এই প্যাকেজটিকে ওয়েব এপিআই 2 তে আপগ্রেড করেছেন?


1
হ্যাঁ. এটি সংস্করণ 5.0.0
nzondlo

1
আপনার ওয়েবকনফাইগে কোনও অ্যাসেম্বলি বাইন্ডিং পুনঃনির্দেশিত হওয়ার কি ঘটে? যদি হ্যাঁ, আপনি কি তাদের ভাগ করে নিতে পারেন ... আমি বিশেষভাবে সিস্টেম.ওয়েব.এইচটিপি * সমাবেশগুলির সাথে সম্পর্কিত কিনা তা বিশেষভাবে দেখছি ..
কিরণ চালা

আমি সবেমাত্র আমার সমস্ত অ্যাসেম্বলি বাইন্ডিং পোস্ট করেছি।
nzondlo

30

পাশাপাশি পেতে nuget প্যাকেজ পরিচালনব্যবস্থার কনসোল ব্যবহার করে প্রকল্পের আপডেট করার জন্য যেমন ইনস্টল-প্যাকেজ Microsoft.AspNet.WebApi.WebHost নিখোঁজ GlobalConfiguration ,

আমার ইনস্টল-প্যাকেজ মাইক্রোসফ্ট.অ্যাসনেট.ওয়েবএপি.সিলফহস্ট দরকার ছিল সিস্টেম.ওয়েব.এইচটিপি ব্যবহার করে নিখোঁজ হওয়ার জন্য;


1
আপনি কি আরও কিছু ব্যাখ্যা করতে পারেন?
ডিয়েটার মীমকেন

10

আপনার প্রকল্পটি Microsoft.AspNet.WebApi.WebHostইনস্টল হয়েছে কিনা তা আপনি দেখতে চাইতে পারেন । দেখা যাচ্ছে, আমার ক্ষেত্রে, Microsoft.AspNet.WebApi.WebHostঅন্য একটি প্রকল্পে ইনস্টল করা হয়েছিল, তবে এটির প্রয়োজনীয় প্রকল্পটি নয়। আপনার প্যাকেজ.কনফিগে, পরীক্ষা করুন যে এর মতো একটি লাইন রয়েছে:

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

যদি এটি উপস্থিত না থাকে তবে Microsoft.AspNet.WebApi.WebHostআপনি আপনার প্রকল্পে ইনস্টল করবেন না । আপনি নুগেট প্যাকেজ ম্যানেজার ব্যবহার করে বা প্যাকেজ ম্যানেজার কনসোলের মাধ্যমে ইনস্টল করতে পারেন। প্যাকেজ ম্যানেজার কনসোল থেকে ইনস্টল করতে, এই কমান্ডটি চালান:

Install-Package Microsoft.AspNet.WebApi.WebHost

5

GlobalConfigration.Configure API "Microsoft.AspNet.WebApi.WebHost" version = "5.2.3" এ উপলব্ধ

এবং "মাইক্রোসফ্ট.এএসপনেট.ওয়েবএপি.ইউবহোস্ট" সংস্করণ = "4.0.0" এ নেই


3

যদি মাইক্রোসফ্ট আনইনস্টল করে এবং ইনস্টল করার পরে সমস্যাটি থেকে যায় তবে এসএস নেট নেট.উইবপিপি.উইবহোস্ট তবে গ্লোবাল কনফিগারেশনের কাজ করার জন্য ওয়েবকনফাইগের ফলোয়িংগুলি যুক্ত করুন

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

এটি আমার ওয়েবকনফাইগে ইতিমধ্যে ছিল। এখনও ইস্যু হচ্ছে (ভিএস ২০১৫)
কুলা

2

"ইনস্টল-প্যাকেজ মাইক্রোসফ্ট.এএসপনেট.ওয়েবএপি.কোর" ঠিকঠাক কাজ করেছে।


1

আমার সমস্যাটি হ'ল নুগেট প্যাকেজ ম্যানেজার একটি আসল আপডেট করেনি তবে ফাইলগুলিতে পুরানো সংস্করণগুলির উল্লেখ রয়েছে, তাই আমি প্রথমে ইনস্টল করা সমস্ত এমভিসি সম্পর্কিত প্যাকেজগুলি (রেজার এবং ওয়েব এপিআই সহ) অপসারণ করে আবার সেগুলি আবার ইনস্টল করেছিলাম এবং এর সংস্করণটি আপডেট করেছিলাম সংস্করণ 3.0.0 সংস্করণে ভিউ / ওয়েব কোডফাইজে রেজারটি।


1

এই সমাধানগুলির কোনওোটাই আমার পক্ষে কাজ করেনি। আমার কাছে নুগেট প্যাকেজগুলির একটি জট ছিল যা একে অপরের উপর বিজ্ঞপ্তি নির্ভরতার কারণে আপডেট হতে পারে না।

আমি এটি পুরানো ধাঁচের উপায় ঠিক করতে হবে। আমি একটি নতুন এমভিসি / ওয়েব এপিআই প্রকল্প তৈরি করেছি এবং ম্যানুয়ালি অনুলিপি করে System.Web.Httpএবং System.Web.Http.WebHostনতুন প্রকল্প থেকে অস্তিত্বের সমাধানের নিউজ ফোল্ডারে into সেখান থেকে আমি ওএমজি, "ব্রাউজিং" দ্বারা রেফারেন্সগুলি আপডেট করেছি এবং সমস্যাটি ঠিক করেছি।


0

এটি Global.asax.cs ফাইলে নেমস্পেস যুক্ত করে এই সমস্যার সমাধান করেছে।

System.Web.Http ব্যবহার করে;

এটি সমস্যার সমাধান করেছে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.