37

我是 asp.net 死亡页面,这是在我使用 nuget 为 mvc4 升级 webgrease 和 bootstrap 之后出现的。

“/”应用程序中的服务器错误。


无法加载文件或程序集“WebGrease”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045) 说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“WebGrease”或其依赖项之一。无法验证强名称签名。该程序集可能已被篡改,或者它被延迟签名但未使用正确的私钥完全签名。(来自 HRESULT 的异常:0x80131045)

源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。

程序集加载跟踪:以下信息有助于确定程序集“WebGrease”无法加载的原因。


版本信息:Microsoft .NET Framework 版本:4.0.30319;ASP.NET 版本:4.0.30319.18045

4

5 回答 5

36

使用包管理器控制台强制卸载包

uninstall-package -f WebGrease

然后使用以下命令安装以前的版本 1.3.0

install-package WebGrease -Version 1.3.0

打开您的 Web.config 文件并在运行时标记下替换以下依赖项

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

于 2013-07-16T10:21:19.703 回答
8

我必须在 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>
...
于 2013-10-07T12:50:40.697 回答
5

我有同样的错误。这是因为 nuget 更新了 WebGrease dll 但没有更新 web.config 文件(使用的 dll 的特殊版本)。

所以我在 web.config 中更改了下一行:

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

我从 dll 属性中获取的版本号(1.6.5135.21930)。

在此之后一切正常。

于 2014-06-06T09:14:13.043 回答
3

我们知道程序集的强名称签名中存在错误,因此我们正在积极努力尽快发布更新版本。目前,我们已从 nuget.org 中取消列出 WebGrease 1.5.1 包。

于 2013-07-16T20:34:22.510 回答
0

试试这个:检查上面的 dll 是否在 GAC 中。如果是这样,请在您的自定义应用程序 bin 文件夹中检查上述 dll 是否存在,如果存在,请从您的参考中删除它们。

于 2013-07-16T07:55:20.950 回答