ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http 4.0.0 หลังจากอัปเดตจาก 2012 ถึง 2013


183

ฉันทำการอัพเกรดตาม http://www.asp.net/mvc/tutorials/mvc-5/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and- เว็บ API-2

ฉันได้รับข้อผิดพลาด มีใครได้รับข้อผิดพลาดนี้อีกหรือไม่

ผิดพลาดเซิร์ฟเวอร์ใน '/' แอพลิเคชัน.

ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)
คำอธิบาย: เกิดข้อยกเว้นที่ไม่สามารถจัดการได้ในระหว่างการดำเนินการตามคำขอเว็บปัจจุบัน โปรดตรวจสอบการติดตามสแต็กสำหรับข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาดและที่มาในรหัส

รายละเอียดข้อยกเว้น: System.IO.FileLoadException: ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http, เวอร์ชัน = 4.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)

ข้อผิดพลาดของแหล่งที่มา:

บรรทัดที่ 48: บรรทัดที่ 49: บรรทัดที่ 50:} บรรทัดที่ 51: บรรทัดที่ 52: โมฆะที่ได้รับการป้องกัน Application_BeginRequest (ผู้ส่งวัตถุ, EventArgs e)

ไฟล์ต้นฉบับ: d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs บรรทัด: 50

การติดตามการโหลดแอสเซมบลี: ข้อมูลต่อไปนี้มีประโยชน์ในการระบุสาเหตุที่แอสเซมบลี 'System.Web.Http, เวอร์ชัน = 4.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' ไม่สามารถโหลดได้

=== ข้อมูลสถานะก่อนผูก === เข้าสู่ระบบ: DisplayName = System.Web.Http, รุ่น = 4.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35 (ระบุอย่างเต็มที่) บันทึก: Appbase = ไฟล์: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/ เข้าสู่ระบบ: เริ่มต้น PrivatePath = D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ bin ชุดการโทร: ThirdPartyWebAPI รุ่น = 1.0.0.0 วัฒนธรรม = เป็นกลาง PublicKeyToken = null === เข้าสู่ระบบ: การผูกนี้เริ่มต้นในบริบทการโหลดเริ่มต้น เข้าสู่ระบบ: การใช้ไฟล์การกำหนดค่าแอปพลิเคชัน: D: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ web.config เข้าสู่ระบบ: การใช้ไฟล์การกำหนดค่าโฮสต์: C: \ Users \ michalc \ Documents \ IIS Express \ config \ aspnet.config ไฟล์จาก C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config เข้าสู่ระบบ: การอ้างอิงโพสต์นโยบาย: System.Web.Http, รุ่น = 4.0.0.0, วัฒนธรรม = เป็นกลาง PublicKeyToken = 31bf3856ad364e35 บันทึก: พยายามดาวน์โหลดไฟล์ URL ใหม่: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ ไฟล์ ASP.NET ชั่วคราว / รูท / 9184b2ea / c6d4b139 / System.Web.Http.DL เข้าสู่ระบบ: พยายามดาวน์โหลดไฟล์ URL ใหม่: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ ไฟล์ ASP.NET ชั่วคราว / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http .DLL เข้าสู่ระบบ: พยายามดาวน์โหลดไฟล์ URL ใหม่: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL WRN: การเปรียบเทียบชื่อชุดประกอบส่งผลให้เกิดความไม่ตรงกัน: รุ่นหลัก ERR: ล้มเหลวในการตั้งค่าชุดประกอบเสร็จสมบูรณ์ (ชม = 0x80131040) สิ้นสุดการตรวจสอบแล้ว พยายามดาวน์โหลดไฟล์ URL ใหม่: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ ไฟล์ ASP.NET ชั่วคราว / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . เข้าสู่ระบบ: พยายามดาวน์โหลดไฟล์ URL ใหม่: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL WRN: การเปรียบเทียบชื่อชุดประกอบส่งผลให้เกิดความไม่ตรงกัน: รุ่นหลัก ERR: ล้มเหลวในการตั้งค่าชุดประกอบเสร็จสมบูรณ์ (ชม = 0x80131040) สิ้นสุดการตรวจสอบแล้ว พยายามดาวน์โหลดไฟล์ URL ใหม่: /// C: /Windows/Microsoft.NET/Framework/v4.0.30319/ ไฟล์ ASP.NET ชั่วคราว / root / 9184b2ea / c6d4b139 / System.Web.Http / System.Web.Http.DLL . เข้าสู่ระบบ: พยายามดาวน์โหลดไฟล์ URL ใหม่: /// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL WRN: การเปรียบเทียบชื่อชุดประกอบส่งผลให้เกิดความไม่ตรงกัน: รุ่นหลัก ERR: ล้มเหลวในการตั้งค่าชุดประกอบเสร็จสมบูรณ์ (ชม = 0x80131040) สิ้นสุดการตรวจสอบแล้ว ไม่สามารถติดตั้งชุดประกอบได้อย่างสมบูรณ์ (ชม. = 0x80131040) สิ้นสุดการตรวจสอบแล้ว ไม่สามารถติดตั้งชุดประกอบได้อย่างสมบูรณ์ (ชม. = 0x80131040) สิ้นสุดการตรวจสอบแล้ว

กองติดตาม:

[FileLoadException: ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)] ThirdPartyWebAPI.WebApiApplication.Application_Start () ใน d: \ SM \ 7.4Test \ WebAPIServerV2 \ ThirdPartyWebAPI \ Global.asax.cs: 50

[HttpException (0x80004005): ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http, เวอร์ชัน = 4.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ข้อยกเว้นจาก HRESULT: 0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegtateIntegateIntegateIntegateHotPub (บริบท HttpAppext แอป HttpApplication
) +9935033
System.Web.HttpApplication.RegisterEventSubScriptions .InitSpecial (สถานะ HttpApplicationState, ตัวจัดการ MethodInfo [], IntPtr appContext, บริบท HttpContext) +172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance (IntPtr appContext บริบท HttpContext) +336
System.Web.Hosting.PipelineRuntime.InitializeAppApp (IntPtr appContext) +296

[HttpException (0x80004005): ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http, เวอร์ชัน = 4.0.0.0, วัฒนธรรม = เป็นกลาง, PublicKeyToken = 31bf3856ad364e35' หรือการอ้างอิงอย่างใดอย่างหนึ่ง คำจำกัดความรายการของชุดประกอบที่อยู่ไม่ตรงกับการอ้างอิงชุดประกอบ (ยกเว้นจาก HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInIntert บริบท HttpContext (บริบท HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit บริบทบริบท HttpContext


ข้อมูลรุ่น: เวอร์ชัน Microsoft .NET Framework: 4.0.30319; เวอร์ชั่น ASP.NET: 4.0.30319.18408


คุณลองเพิ่มการอ้างอิงถึง 'System.Web.Http' อีกครั้ง
Izikon

4
โปรดทำเครื่องหมายคำตอบตามที่ยอมรับ
Aliostad

คำตอบ:


288

ฉันแก้ไขปัญหานี้ด้วยการติดตั้งแพคเกจ NuGetใหม่ซึ่งแก้ไขการพึ่งพาที่ไม่สมบูรณ์ จากตัวจัดการแพ็คเกจให้รัน:

Update-Package Microsoft.AspNet.WebApi -reinstall

1
การเรียกใช้แอพพลิเคชั่นเว็บในพื้นที่นั้นใช้ได้สำหรับฉัน (F5) แต่เมื่อปรับใช้กับเซิร์ฟเวอร์ระยะไกล (ด้วย WebDeploy) แอสเซมบลีไม่ได้ถูกคัดลอกไปยังเซิร์ฟเวอร์ ฉันไม่แน่ใจว่าควรจะคัดลอกชุดประกอบหรือไม่ อย่างไรก็ตามหลังจากรันคำสั่งนี้แอสเซมบลีที่จำเป็นทั้งหมดถูกทำเครื่องหมายด้วย copy-local = true และหลังจากการปรับใช้แอปเริ่มทำงานอย่างถูกต้อง
Guillermo Ruffino

3
เพียงเพื่อเพิ่มภาพที่สมดุลมากขึ้น - นี่ไม่ได้แก้ปัญหาสำหรับฉัน
Lewray

2
ตรวจสอบให้แน่ใจว่าได้เพิ่มการอัปเดตที่จำเป็นสำหรับโครงการที่ต้องพึ่งพาเช่นการทดสอบและอื่น ๆ
DeeArgee

ฉันทำสิ่งนี้และทำให้เกิดการเปลี่ยนแปลงมากเกินไป แต่ฉันสังเกตเห็นว่ามันปรับการเปลี่ยนเส้นทางการเชื่อมโยงใน web.config ฉันยกเลิกการเปลี่ยนแปลงอื่น ๆ ทั้งหมดที่ทำและสิ่งนี้ได้ผลสำหรับฉัน
Myster

ตอนนี้ฉันได้รับข้อผิดพลาดใหม่: เวอร์ชันใหม่คือ Version = 5.2.3.0 และคาดว่า Version = 4.0.0.0
Yar

84

เพื่อแก้ไขข้อผิดพลาดที่ไม่สามารถโหลดไฟล์หรือชุดประกอบ 'System.Web.Http' ข้อผิดพลาดใช้ NuGet เพื่อติดตั้ง Web API 2.1 WebHost

ในโซลูชัน explorer ในการอ้างอิงคลิกขวาและเลือกจัดการแพคเกจ nuget (หากไม่มีการติดตั้ง nuget)

ป้อนคำอธิบายรูปภาพที่นี่

ในหน้าต่างจัดการแพคเกจ NuGet ทางด้านซ้ายคลิกออนไลน์จากนั้นค้นหาบนขวาสำหรับโฮสต์เว็บและติดตั้ง Microsoft ASP.NET Web API 2.1 โฮสต์เว็บ (เมื่อติดตั้งแล้วปุ่มติดตั้งจะเปลี่ยนเป็นการตรวจสอบสีเขียว)

หลังจากนั้นโครงการจะโหลดใหม่และเมื่อสร้างอีกครั้งข้อผิดพลาดจะได้รับการแก้ไขและโครงการจะทำการดีบักและรัน ข้อผิดพลาดจะหายไปและคุณอาจเป็น 'ไม่พบทรัพยากร เพียงต่อท้าย URL (เช่นจาก localhost: 52088 / ไปยัง localhost: 52088api / ผลิตภัณฑ์)

คำถามของคุณดีและช่วยฉัน

หวังว่าคำตอบนี้จะช่วย!


ขอบคุณ Catto มันช่วยรักษาฉันได้มาก
Saurabh Soni

61

คุณต้องเพิ่มการเปลี่ยนเส้นทางการชุมนุม:

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

เป็นไปได้มากที่คุณต้องทำเช่นนี้สำหรับแอสเซมบลีอีกสองสามรายการเช่นการโฮสต์เว็บ ฯลฯ


ฉันแก้ไขคำตอบ สำหรับบางชื่อเหตุผล DLL System.Web.Httpถูกพระราชวังวินด์เซอร์เปลี่ยนไป
Aliostad

7
คุณไม่ควรเพิ่มการเปลี่ยนเส้นทางแบบไบนารีโดยไม่ทำให้แน่ใจว่าชุดประกอบใหม่นั้นสามารถใช้งานร่วมกับไบนารีก่อนหน้านี้ได้
GETah

18

หรือคุณสามารถทำได้จาก NuGet Package Manager Console

 Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

และจากนั้นคุณจะสามารถเพิ่มการอ้างอิงถึง System.Web.Http.WebHost 5.0


ทำงานให้ฉันเพียงแค่ติดตั้งแพคเกจ Microsoft.AspNet.WebApi
Djama

17

เมื่อฉันติดตั้ง Web Api 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>

1
เหมือนกันที่นี่ในโครงการที่เป็น Web Api 2.2 ตั้งแต่เริ่มต้นเมื่อเผยแพร่ไปยัง Azure โครงการทำงานได้ดีในพื้นที่ แต่บน Azure ฉันได้รับข้อผิดพลาดจาก OP การเพิ่มบรรทัดเหล่านี้ไปยัง web.config และเผยแพร่ใหม่ใน Azure แก้ไข
AronVanAmmers

4

ฉันแค่ตั้งค่าCopy Local = trueการชุมนุมที่หายไปและได้ผล หลักสูตรนี้เกิดขึ้นโดยการคลิกขวาที่ข้อมูลอ้างอิงที่หายไป (ซึ่งระบุไว้ในข้อความแสดงข้อผิดพลาด) และเลือกคุณสมบัติ ดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

นี่ควรแก้ปัญหาเดียวเนื่องจากอาจมีมากกว่าหนึ่งชุดที่ทำให้เกิดปัญหา - สิ่งที่ฉันทำคือฉันเลือกชุดประกอบทั้งหมดและคลิกขวาที่ชุดประกอบ คุณสมบัติที่เลือก และตั้งค่าทั้งหมดเป็น Copy Local = true; จากนั้นเผยแพร่อีกครั้ง


1
ทำงานได้อย่างสมบูรณ์แบบ ฉันต้องทำ "Copy Local = true" บน System.Web.Http และ System.Net.Http.Formatting
Sandip Subedi

4

ทางออกที่เหมาะสมในการแก้ไขปัญหานี้คือทำตามขั้นตอน

. อัปเดต Visual Studio ถ้าคุณมีเวอร์ชั่นที่เก่ากว่าเป็น 15.5.4 (ไม่บังคับ)

  1. ลบการเปลี่ยนเส้นทางรวมทั้งหมดออกจาก web.config

  2. เพิ่มลงในไฟล์ csproj:

 <PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>
  1. สร้าง.

  2. ในโฟลเดอร์ bin ควรมี(WebAppName).dll.configไฟล์

  3. ควรมีการเปลี่ยนเส้นทางในนั้น คัดลอกเหล่านี้ไปยัง web.config

  4. ลบ snipped ด้านบนออกจากไฟล์ csproj อีกครั้ง

  5. มันควรจะทำงาน

Detailed Blog


มันไม่ได้สร้างการเชื่อมโยงทั้งหมด
batmaci

3

สำหรับฉันมันแค่ชนกับข้อผิดพลาดนี้ในสภาพแวดล้อมการผลิตไม่ได้อยู่ในเครื่องท้องถิ่น สิ่งที่แก้ไขได้คือการลบเนื้อหาของโฟลเดอร์ / bin และสร้างใหม่อีกครั้ง


นี่คือสิ่งที่ผู้คนควรตรวจสอบ ฉันมีปัญหาเดียวกัน พบว่ามี dll ที่ไม่จำเป็นสำหรับ Microsoft.AspNet ในส่วนหน้าของแอพของฉัน ฉันลบโฟลเดอร์ถังขยะในระบบที่ผลิตขึ้นเผยแพร่ไซต์และเวทมนต์ใหม่
Ron

2

เพียงคำใบ้ที่เป็นประโยชน์ชัดเจน แต่เป็นไปได้ .... โปรดอย่าลืมตรวจสอบว่าเวอร์ชันใหม่ที่คุณระบุในการรวมแอสเซมบลี webconfig เป็นเวอร์ชันเดียวกับที่คุณอ้างอิงในการอ้างอิงโครงการของคุณ (เช่นที่ฉันเขียนนี้ ... นี้จะเป็น 5.1.0.0 ถ้าคุณเพิ่งทำ NUGET ใน System.Web.Http


2
 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.

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


2

นี่อาจช่วยใครซักคน

ฉันตัดสินใจไปกับแอป MVC4

ทำงานโครงการทำงาน

ติดตั้งแพคเกจบางอย่างเช่น
Microsoft ASP.NET WEB API 2.2 (4 แพ็คเกจ)
หน้าวิธี
ใช้ Microsoft ASP.NET WEB API 2.2 Microsoft ASP.NET WEB API 2.2 OWIN

เรียกใช้โครงการข้อผิดพลาดเดียวกับที่กล่าวถึงในคำถาม

สารละลาย:

ใน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>


แก้ไขปัญหา


แต่เมื่อพบข้อผิดพลาดของโปรแกรมแก้ไขด่วนให้ไปที่โฟลเดอร์VIEWของโครงการ MVC4 ค้นหาไฟล์second web.configและเปลี่ยนเวอร์ชั่นจาก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>



2

ฉันสามารถแก้ปัญหาที่คล้ายกันกับ System.Net.HTTP โดยการเพิ่มการอ้างอิงการชุมนุมใน app.config ของโปรแกรมหลัก

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

1

ฉันพบวิธีแก้ปัญหา! ลบโฟลเดอร์ชื่อแพ็คเกจในไดเรกทอรีโครงการแล้วสร้างใหม่เพื่อเรียกใช้


1
<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>

1

ใช่!!!

Install-Package Microsoft.AspNet.WebApi -Version 5.0.0

มันทำงานได้ดีในกรณีของฉัน .... thnkz


2
นี่เป็นเพียงที่ซ้ำกันของคำตอบที่มีอยู่ ตามที่ปรากฏว่าคุณไม่มีอะไรเพิ่มเติมให้เพิ่มโปรดลองลบอันนี้ออก
zzzzBov

1

ฉันไม่ได้ทำอะไรเลยเพียงแค่คัดลอกไฟล์ในโฟลเดอร์Bin ที่กำลังพัฒนาไปยังโฟลเดอร์Bin ที่ปรับใช้ออนไลน์และมันก็ใช้ได้ดีสำหรับฉัน


0

ดังที่คนอื่น ๆ บอกว่าเพิ่งติดตั้งแพคเกจ MVC ไปยังโปรเจ็กต์เว็บของคุณโดยใช้ nuget แต่อย่าลืมเพิ่มแพ็กเกจ MVC ไปยังโปรเจ็กต์ใด ๆ ขึ้นอยู่กับโปรเจ็กต์เว็บเช่นการทดสอบหน่วย หากคุณสร้างแต่ละโครงการที่รวมเป็นรายบุคคลคุณจะเห็นโครงการแม่มดต้องการการอัปเดต


0

ฉันมีปัญหาเดียวกันและแพคเกจติดตั้งใหม่ไม่ทำงาน

แอปพลิเคชันของฉันทำงานใน LocalIIS (ไม่ใช่ IIS EXPRESS) ฉันเปิดใช้งานการติดตามการโหลดแอสเซมบลีและพบว่ามันต้องการโหลดSystem.Web.Httpโหลดจากด้านล่างอุณหภูมิ catche ดังนั้นลบโฟลเดอร์ catch ทั้งหมดที่อยู่ในนั้น

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ไฟล์ ASP.NET [แอปพลิเคชันของฉัน]


0

ฉันจะแก้ไขปัญหานี้โดยการยกเลิกการเปลี่ยนแปลงที่ nuget ได้ทำกับฉันหลังจากที่ทำงานweb.config nugetย้อนกลับการเปลี่ยนแปลงเป็นเวอร์ชันการทำงานก่อนหน้า

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

0

สิ่งที่แก้ไขปัญหาได้สำหรับฉันคือการติดตั้งหน้าช่วยเหลือ Microsoft ASP.NET Web API 2.2 และแพ็คเกจMicrosoft ASP.NET Web API 2.2 OWINอีกครั้ง ฉันติดตั้งใหม่ทั้งสองในเวลาเดียวกัน แต่ฉันคิดว่ามันเป็นรุ่นแรกที่แก้ไขปัญหาได้

ฉันลองสองสามตัวแรกของโซลูชั่นที่นำเสนอที่นี่ แต่ก็ไม่ได้ช่วยแล้วฉันเปรียบเทียบการอ้างอิงของฉันกับคนที่อยู่ในโครงการที่ทำงาน (จากหลักสูตรเกี่ยวกับ Pluralsight) และการพึ่งพาทั้งสองข้างต้นเป็นเวอร์ชั่นต่ำกว่า (5.0.0 ) ดังนั้นฉันอัปเดตพวกเขาเป็น 5.2.3 และมันเริ่มทำงาน


0

ฉันได้รับบริการ WCF สำหรับฉัน (เนื่องจากปัญหาถูกแสดงใน dev ท้องถิ่น) ฉันก็ต้องลบเนื้อหาของโฟลเดอร์ช่องเก็บภายใต้การแก้ปัญหา การสร้างใหม่ทำงานได้ดีอีกครั้ง


0

เวอร์ชั่น ASP.NET: 4.0.30319.18408 เป็นของ. Net4.5 และ System.Web.Http Version = 4.0.0.0 เข้ากันได้กับ. NET4.0 ดังนั้นเวอร์ชันที่คุณมีไม่เข้ากัน คุณควรอัปเดต System.Web.Http ให้เป็นเวอร์ชัน 5.0.0.0 ซึ่งเข้ากันได้กับ. Net4.5


0

ฉันมีปัญหาที่คล้ายกัน ทุกอย่างทำงานก่อน เดิมสร้างโดยใช้ Web Forms และต่อมาเพิ่ม Web API สำหรับบางสิ่ง

  • พยายามถอนการติดตั้งติดตั้งและติดตั้งแพคเกจ Microsoft.AspNet.WebApi ใหม่อีกครั้ง
  • พยายามลบโฟลเดอร์แพ็คเกจออกจากโซลูชันและให้ NuGet กู้คืนใน VS
  • พยายามลบการอ้างอิงแอสเซมบลีแต่ละรายการ (ภายใต้การอ้างอิง) และติดตั้งแพคเกจใหม่
  • พยายามเพิ่มการผูกเปลี่ยนเส้นทางไปยังรุ่น 5.2.3.0 ใน web.config ที่กล่าวถึงในหลายคำตอบ ไม่มีอะไรทำงานให้ฉัน

สิ่งที่ใช้ได้ผลใน Visual Studio ให้เปลี่ยนการตั้งค่าโปรไฟล์เผยแพร่จาก Release เป็น Debug แปลก แต่นั่นคือสิ่งที่ทำงาน ดังนั้นการแบ่งปันที่นี่


0

ฉันได้รับปัญหานี้เมื่อปรับใช้กับ Azure โดยใช้คุณสมบัติการเผยแพร่ อย่าลืมล้างไฟล์ที่ปลายทาง

Publish Settings -> File Publish Options drop down -> Check Remove additional files at destination

สิ่งนี้แก้ไขปัญหาของฉันได้ในกรณีที่ผู้คนต้องออกล่าเพื่อทำสิ่งนี้เช่นฉัน ทุกอย่างเป็นเวอร์ชันเดียวกันในโครงการ / โซลูชันของฉันไม่ใช่ที่ปลายทางที่ฉันกำลังปรับใช้


0

หากคุณใช้หลายโครงการในการแก้ปัญหาและวิธีการโทรในโครงการหนึ่งโครงการอื่นให้แน่ใจว่าทุกโครงการ (เรียกว่าโครงการและโครงการโทร) ใช้เฉพาะ'System.Net.Http'รุ่น


0

เปลี่ยนการตั้งค่าสถานะรุ่น Specfic จาก true เป็น false สำหรับ dll ในการอ้างอิง


0

ฉันมีปัญหาเดียวกันกับ System.Web.Http.WebHost, Version = 5.2.6.0 ที่อ้างอิง แต่แพ็คเกจ NuGet ล่าสุดคือ 5.2.7.0 ฉันแก้ไขไฟล์ web.config ติดตั้งแพคเกจ NuGet ใหม่จากนั้นแก้ไขไฟล์โครงการ visual studio สำหรับโครงการทั้งหมดของฉันเพื่อให้แน่ใจว่าไม่มีการอ้างอิงถึง 5.2.6.0 ที่ยังคงอยู่ แม้หลังจากทั้งหมดนี้ปัญหายังคงอยู่

จากนั้นฉันดูในโฟลเดอร์ bin สำหรับโครงการที่กำลังทำการยกเว้นซึ่งฉันพบ DLL สำหรับหนึ่งในโครงการอื่น ๆ ของฉันที่ไม่ได้ขึ้นต่อกันและไม่ควรอยู่ที่นั่น ฉันลบ DLL ที่ละเมิด (ซึ่งได้รับการคอมไพล์โดยใช้รุ่น 5.2.6.0 ของ System.Web.Http.WebHost) สร้างโครงการที่ลำบากขึ้นใหม่และตอนนี้มันทำงานได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.