2014-10-23 11 views
24

Trong Visual Studio 2012 tôi đã tạo một dự án ASP.NET MVC 4 nơi khung đích là Khuôn khổ .NET 4.5. Khi tôi triển khai dự án của tôi đến một máy chủ web nó đã cho các lỗi sau:Không thể tải tệp hoặc lắp ráp 'System.Web.Http.WebHost, Phiên bản = 4.0.0.0, Văn hóa = trung lập, PublicKeyToken = 31bf3856ad364e35'

Could not load file or assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file 
specified. 

Description: An unhandled exception occurred during the execution of the current web request. 
Please review the stack trace for more information about the error and where 
it originated in the code. 

Exception Details: System.IO.FileNotFoundException: Could not load file or 
assembly 'System.Web.Http.WebHost, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The system cannot find the file specified. 

Source Error: 


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.34237 
+0

Bạn đã sử dụng triển khai web hay bạn đã triển khai nó như thế nào? – John

+0

@John i xuất bản và sau đó sao chép các tệp đó để lưu trữ – user1688401

+0

Bạn có thể trực tiếp xuất bản lên máy chủ không? Hoặc sử dụng trang web triển khai zip hoặc một cái gì đó? Điều đó sẽ đảm bảo tất cả các tệp được bao gồm. Ngoài ra hãy chắc chắn rằng MVC đã được cài đặt trên máy chủ. – John

Trả lời

20

Kiểm tra thư mục bin của dự án triển khai của bạn. Nó sẽ chứa System.Web.Http.WebHost.dll. Nếu dll này nằm trong thư mục này, hãy kiểm tra phiên bản đó. Nếu nó không phải là 4.0.0.0, thì bạn nên triển khai phiên bản 4.0.0.0 hoặc thay đổi cấu hình web của bạn để sử dụng phiên bản khác (không thực sự tốt vì phụ thuộc)

+1

tôi đã thử nó nhưng nó cho lỗi đó: http://i.hizliresim.com/R64NGa.png – user1688401

+1

Tôi đã nói với bạn một số tùy chọn để thử. Bạn đã thử cái nào? – IAfanasov

+0

cảm ơn bạn nó hoạt động ngay bây giờ ...Tôi chấp nhận câu trả lời này – user1688401

11

Cố gắng cài đặt lại gói Microsoft.AspNet.WebApi. Mở Package Manager Console và loại:

Update-Package Microsoft.AspNet.WebApi -reinstall 

Hãy cẩn thận, lệnh này sẽ loại bỏ tất cả phụ thuộc và bạn sẽ phải cài đặt chúng bằng tay.

+2

cảm ơn nó đã làm việc cho tôi –

+0

Chỉnh sửa gói.config và nhận xét tất cả các tham chiếu webapi, sau đó bạn có thể chạy cài đặt mà không cần gỡ cài đặt trước. –

25

Tôi đã gặp vấn đề tương tự ngay trong quá trình triển khai. Tôi đã có thể sửa chữa nó bằng cách đánh dấu các hội đồng để được sao chép vào tập tin triển khai.

Để thực hiện việc này, trong dự án Visual Studio của tôi, chọn lắp ráp System.Web.Http.Webhost trong tham chiếu của bạn và thay đổi thuộc tính 'Sao chép địa phương' thành True. Tôi phải lặp lại điều này cho một vài hội đồng khác bị mất tích.

Nhờ trang web này cho những lời khuyên - http://haacked.com/archive/2008/11/03/bin-deploy-aspnetmvc.aspx/

0

Tôi chạy vào ngày hôm nay sau khi thiết lập một đội thành phố mới xây dựng Agent. Tác nhân mới không cài đặt MVC 4, có lẽ là một phần của vấn đề. May mắn thay, tôi tìm thấy this article dẫn tôi đến giải pháp. Trong Team City, tôi vừa cập nhật Build Build cho Nuget Restore để nó không sử dụng cache cục bộ.

enter image description here

này hoạt động vì bộ nhớ cache có thể được thiết lập bằng cách xây dựng vận động viên với các khuôn khổ khác nhau (MVC) được cài đặt rồi.

4

Tôi đã gặp lỗi này với một dự án cũ mà tôi đã quay trở lại để thực hiện một chút công việc. Nó chỉ ra dự án đã không thực sự sử dụng WebApi vì vậy tôi gỡ cài đặt Microsoft.AspNet.WebApi bằng NuGet. Điều đó giải quyết được vấn đề cho tôi.

Nếu tôi thực sự cần WebApi, tôi chắc chắn rằng việc cài đặt lại nó cũng sẽ sửa lỗi.

0

Tôi biết điều này được trả lời nhưng tôi nghĩ rằng tôi muốn thêm một cái gì đó.

Mỗi lần tôi đặt "sao chép địa phương" thành true trên một tệp gây ra lỗi mà tôi đã xuất bản và chỉ nhận được một số khác. Vì vậy, tôi chỉ cần chọn tất cả các tập tin theo tài liệu tham khảo và đặt tất cả chúng thành sự thật. Điều này đã khắc phục vấn đề cho tôi.

Các vấn đề liên quan