Tôi đã cố triển khai dự án asp.net mvc mới cho Azure để sản xuất. Mọi thứ hoạt động cục bộ nhưng tôi gặp rắc rối với các assembly khi triển khai.Lỗi lắp ráp Microsoft.Web.Administration trên azure
Khi điều hướng đến hầu hết các trang, tôi bắt đầu nhận lỗi của:
Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
Sử dụng thông tin từ: https://stackoverflow.com/a/8824250/1411764 tôi bắt được ngoại lệ:
Could not load file or assembly 'Microsoft.Web.Administration,
Version=7.9.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or
one of its dependencies. The system cannot find the file specified.
Microsoft.Web.Administration
dường như là một lắp ráp IIS.
Sau đó, tôi đã thêm Microsoft.Web.Administration
vào dự án sử dụng Nuget.
Bây giờ tôi đang mắc kẹt với một lỗi mới:
Could not load file or assembly 'Microsoft.Web.Administration' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
Tôi đã thử thêm một ràng buộc chuyển hướng vào web.config
<dependentAssembly>
<assemblyIdentity name="Microsoft.Web.Administration" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.9.0.0" newVersion="7.9.0.0" />
Tại thời điểm này nó phá vỡ ngay lập tức và tôi không thể tải bất kỳ trang nào. (Có vẻ tồi tệ hơn khi tôi không có thêm dll.
Tôi đã đọc nhiều bài đăng tương tự nhưng dường như không thể hiểu được. Hy vọng tôi đang làm điều gì đó đơn giản sai do thiếu hiểu biết về Azure . Bất kỳ trợ giúp sẽ được nhiều đánh giá cao
Cập nhật Thông tin
tính cách nhấn phải để tham khảo Microsoft.Web.Administration
:.
Sao chép địa phương: Đúng
Runtime Version v2.0.50727
Version: 7.0.0.0
Calling lắp ráp: Microsoft.WebMatrix.Core, Version = 8.1.0.0, Culture = trung tính, PublicKeyToken = 31bf3856ad364e35
Cập nhật 2 - từ nhận xét:
Sau khi cài đặt ràng buộc với 7.0.0.0
, bây giờ nó biên dịch lại trên máy chủ và có thể hiển thị một số trang nhưng tôi vẫn đang gặp lỗi trước đó.
Could not load file or assembly 'Microsoft.Web.Administration, Version=7.9.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The located assembly's manifest definition does not match the assembly reference.
(Exception from HRESULT: 0x80131040)
tôi giả từ này phiên bản đó NuGet đã chỉ cung cấp 7.0.0.0
tuy nhiên một cái gì đó nghĩ rằng nó cần 7.9.0.0
.
Cập nhật 3: Thành công
tôi bắt đầu nhìn vào sự khác biệt số phiên bản và thấy stack question này mà giải thích một số khác biệt giữa IIS và IISExpress.
Hiện tại, tôi đã thay đổi chuyển hướng từ 7.9.0.0
thành 7.0.0.0
có vẻ như đã giải quyết được vấn đề.
<bindingRedirect oldVersion="0.0.0.0-7.9.0.0" newVersion="7.0.0.0" />
Cụm công việc hiện đang hoạt động và tất cả các trang đang tải.
Giải pháp này rất khó hiểu. Có ràng buộc với một phiên bản thấp hơn thực hành xấu hoặc có khả năng gây ra các vấn đề trong tương lai không? Tôi lo lắng rằng tôi nên giải quyết mã gọi các phiên bản IIS khác nhau.
Đây có phải là Vai trò web hoặc Trang web không? – haim770
Bạn có thể kiểm tra FileInfo cho Microsoft.Web.Administration.dll và thêm Phiên bản AssemblyInfo và Tệp của dll, tôi nghi ngờ chúng có thể không khớp với 100%. –
Hãy thử bật Nhật ký kết nối để biết thêm thông tin về các vấn đề ràng buộc chính xác http://stackoverflow.com/questions/4679279/debug-net-assembly-binding-aka-find-what-dll-is-used-and-why –