2013-07-16 19 views
37

Tôi là trang asp.net chết, điều này xảy ra sau khi tôi nâng cấp webgrease và bootstrap cho mvc4 bằng nuget.Sau khi nâng cấp lên webgrease 1.5.1.25624 từ nuget, System.IO.FileLoadException đang đến

Server Error in '/' Application.


Could not load file or assembly 'WebGrease' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045) 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.FileLoadException: Could not load file or assembly 'WebGrease' or one of its dependencies. Strong name signature could not be verified. The assembly may have been tampered with, or it was delay signed but not fully signed with the correct private key. (Exception from HRESULT: 0x80131045)

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Assembly Load Trace: The following information can be helpful to determine why the assembly 'WebGrease' could not be loaded.


Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18045

+1

có ai trong số các bạn may mắn có ít nhất khôi phục gói cho phiên bản cũ không? – Luke94

+0

@ Luke94: Vâng, tôi đã làm. Làm theo hướng dẫn của Hubo và hướng dẫn sẽ hoàn nguyên về 1.3. – LeftyX

+0

Tôi vừa viết email cho nhóm webgrease để cho họ biết. Trong khi đó không có lựa chọn nào khác ngoài quay lại phiên bản cũ. – LeftyX

Trả lời

0

Hãy thử cách này: Kiểm tra xem các tệp ở trên có nằm trong GAC hay không. Nếu vậy, trong thư mục bin ứng dụng tùy chỉnh của bạn kiểm tra nếu các dll trên có mặt nếu như vậy loại bỏ chúng khỏi tài liệu tham khảo của bạn.

+0

đã kiểm tra, nhưng điều này không hoạt động. –

36

Force gỡ bỏ cài đặt các gói sử dụng Package Manager Console

uninstall-package -f WebGrease 

sau đó cài đặt các phiên bản trước 1.3.0 bằng cách sử dụng lệnh sau

install-package WebGrease -Version 1.3.0 

Mở file Web.config của bạn và thay thế dưới đây phụ thuộc dưới runtime tag

<dependentAssembly> 
    <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-1.3.0.0" newVersion="1.3.0.0" /> 

+0

Tôi chỉ viết xuống cùng một giải pháp :-) Điều duy nhất tôi đã làm khác với bạn là tôi đã xóa mục lắp ráp phụ thuộc trước khi cài đặt lại WebGrease – Luke94

+3

Câu trả lời của bạn đã lưu thịt xông khói của tôi ngay hôm nay! –

+0

Tùy thuộc vào cơ chế triển khai của bạn, phiên bản 1.3.0 của WebGrease.dll có thể không ghi đè lên phiên bản 1.5.1.Một cái gì đó để xem ra cho nếu bạn sử dụng câu trả lời này, triển khai, và nó vẫn còn bị hỏng. – danmiser

3

Chúng tôi nhận thấy có lỗi trong chữ ký tên mạnh của hội đồng và vì vậy chúng tôi đang tích cực làm việc để phát hành phiên bản cập nhật sớm nhất có thể. Hiện tại, chúng tôi chưa niêm yết gói WebGrease 1.5.1 từ nuget.org.

+1

Đã lâu rồi và tôi thấy lỗi này. – Steven

+0

Có gì đó đang kéo trong phiên bản cũ đó. Làm 'uninstall-package -f WebGrease' và sau đó 'install-package WebGrease' đã cài đặt phiên bản mới hơn, cập nhật web.config và mọi thứ đã hoạt động. – Steven

8

tôi phải thêm đoạn mã sau trong web.config:

<runtime> 
     <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="WebGrease" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 
     </dependentAssembly> 
... 
+0

Đây là vấn đề của tôi vì web.configs của chúng tôi không được kiểm tra vào nguồn vì chúng phụ thuộc vào môi trường và được biên dịch cho từng môi trường triển khai. Chúng tôi sử dụng tệp web.config.tmpl được templatized với các biến môi trường. – blockloop

5

tôi đã có lỗi tương tự. Nó đã xảy ra bởi vì nuget cập nhật WebGrease dll nhưng không cập nhật một tập tin web.config (phiên bản đặc biệt của dll được sử dụng).

Vì vậy, tôi đã thay đổi dòng tiếp theo trong web.config của tôi:

<bindingRedirect oldVersion="0.0.0.0-1.5.2.14234" newVersion="1.5.2.14234" /> 

để

<bindingRedirect oldVersion="0.0.0.0-1.6.5135.21930" newVersion="1.6.5135.21930" /> 

Số phiên bản (1.6.5135.21930) Tôi mất từ ​​tính dll.

Sau khi mọi thứ hoạt động chính xác.

+1

+1. Như vậy bắt đầu gieo hạt của hiệp hội từ "crap" với một bản cập nhật "Nuget" tuyệt vời khác .... – EdSF

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