7

自从我将最新版本的 log4net (1.2.11.0) 放在我的解决方案项目中以来,我收到了附加错误。这在我部署后立即发生在服务器上,当我再次刷新时它会消失,直到下一次部署。请注意,我尝试了以下版本重定向代码,但没有帮助:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
        <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
        <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" />
    </dependentAssembly>
</assemblyBinding>

这是我得到的错误:

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

无法加载文件或程序集 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=1b44e1d426115821”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

源错误:

 Line 76:     </script>
Line 77:     <form id="form1" runat="server">
Line 78:     <asp:ScriptManager ID="radscriptmanager" runat="server">
Line 79:     </asp:ScriptManager>
Line 80:     <asp:ContentPlaceHolder ID="cphAfterScriptManager" runat="server">

源文件:MainFront.Master 行:78

程序集加载跟踪:以下信息有助于确定为什么无法加载程序集“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821”。

4

1 回答 1

10

我怀疑造成这种情况的原因可能是您的应用程序中依赖于 1.2.10,并且由于新的签名密钥,您安装的 log4net 新版本不兼容。

1.2.11 你会注意到已经用不同的密钥签名,这给许多人带来了痛苦。我最终只是恢复到 1.2.10。

但是,有一个 1.2.11 版本使用以前的密钥进行。只需下载并执行以下操作,一切都应该没问题。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-1.2.10.0"
                             newVersion="1.2.11.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

您可以从以下网址获取新旧密钥:http: //logging.apache.org/log4net/download_log4net.cgi

于 2012-07-26T11:09:27.223 回答