自从我将最新版本的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,Version = 1.2.10.0,Culture = neutral,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 Line:78
程序集加载跟踪:以下信息有助于确定无法加载程序集“log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821”的原因。
答案 0 :(得分:9)
我怀疑这样做的原因可能是您在应用程序中依赖于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