Sáng nay tôi thức dậy khi phát hiện ứng dụng web MVC 4 của tôi trên máy chủ của tôi đã bị hỏng.Ứng dụng MVC ngắt sau khi cập nhật Windows ngày 15 tháng 10
Các thông báo lỗi là:
An exception of type 'System.IO.FileNotFoundException' occurred in
mscorlib.dll but was not handled in user code.
Additional information: Could not load file or assembly
'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral,
PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies.
The system cannot find the file specified.
tôi mở dự án VS của tôi và chạy nó từ mã (do đó trên một máy tính khác nhau), xảy ra lỗi tương tự!
Tôi đã kiểm tra nhật ký máy chủ của mình và các bản cập nhật đã phát hiện được cài đặt tự động lúc 5:06 sáng. Một trong những bản cập nhật được thực hiện bởi gói cài đặt AspNetMVC4.msi. Một phút sau, các lỗi đầu tiên trên ứng dụng web của tôi bắt đầu phát trực tuyến.
Trên máy tính xách tay phát triển của tôi, trình cài đặt tương tự đã chạy ngày hôm qua (ngày 15 tháng 10) lúc 1:10:10 tối.
Cùng một sự cố trên cả hai máy tính.
Tôi chưa bao giờ nghe nói về Newtonsoft.Json (nhưng bây giờ tôi đã phát hiện ra nó là gì). Dường như một trong những dlls MVC (không chắc) hoặc một trong những gói dll (nhiều khả năng hơn) có một tham chiếu đến Newtonsoft.
Tôi đã cố gắng intall Newtonsoft từ nuget. Điều này đã có một số hiệu ứng, lỗi đã thay đổi từ FileNotFound thành FileLoadException:
An exception of type 'System.IO.FileLoadException' occurred in
mscorlib.dll but was not handled in user code Additional
information: Could not load file or assembly 'Newtonsoft.Json,
Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'
or one of its dependencies. The located assembly's manifest
definition does not match the assembly reference. (Exception
from HRESULT: 0x80131040)
Tôi cũng đã cố gắng nâng cấp từ .NET 4.5 lên 4.5.1. Điều đó không giúp được gì.
BTW, lỗi xảy ra trong RegisterRoutes trong Global.asax.cs:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Bất kỳ ý tưởng?
Phiên bản nào bạn đã cài đặt với nuGet, bạn có thể thử bindingRedirect để chuyển hướng đến phiên bản mới xem http://msdn.microsoft.com/en-us/library/eftw1fys(v=vs.110).aspx – 3dd
phiên bản của Newtonsoft.Json bạn đã cài đặt? –
Có thể chuyển hướng ràng buộc lắp ráp giải quyết vấn đề này không? –