部署后初始加载时出现奇怪的log4net引用错误

时间:2012-07-26 09:07:28

标签: asp.net log4net

自从我将最新版本的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”的原因。

1 个答案:

答案 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