部署时Crystal Reports错误..无法加载文件或程序集'log4net

时间:2010-11-17 19:51:35

标签: crystal-reports log4net

请帮忙。我有一个在VS2010中构建的Web应用程序,我们正在使用2010年的CR插件,一切都在我们的本地机器上完美运行。当我们将Web应用程序部署到Server 2008时,应用程序运行正常,直到我们尝试获取报告。当我们收到报告时,我们会收到......

Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=692fbea5521e1304' or one of its dependencies. The system cannot find the file specified. 

我们已经安装了CR2010运行时,文件log4net.dll版本1.2.10.0在GAC中,因此我们没有在应用程序中引用它。当我们将其添加为参考时,无论我们在应用程序中的哪个位置,我们都会收到此错误,而不仅仅是在报告页面上。请帮忙!

6 个答案:

答案 0 :(得分:21)

我在x64机器上意外安装x86版本的水晶报告redist后收到了同样的错误信息。

安装正确的x64 redist解决了问题 - http://downloads.businessobjects.com/akdlm/cr4vs2010/CRforVS_redist_install_64bit_13_0.zip

答案 1 :(得分:19)

我们遇到了同样的问题,结果却没有(在我们的例子中)是Crystal Reports redist的版本(我们在64位机器上安装了32位版本。我们能够修复问题是

  

导航到您的虚拟目录应用程序池 - >高级设置 - >将Enable 32-Bit Applications设为True

并将托管管道模式从Classic更改为Integrated。之后我们不再遇到丢失的log4net dll的错误。

答案 2 :(得分:4)

如果你有一台x86开发机,而你的网络服务器是64位机器,你可能会遇到这里讨论的问题:

http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/546059a6-7179-4027-8f16-822ac6dc189a/

Visual Studio会自动将32位log4net.dll部署到64位Web服务器中,即使您没有在项目中引用它也是如此。部署完成后,只需从bin目录中删除log4net.dll,因为CR运行时实际上并不需要它。

答案 3 :(得分:3)

我们也遇到了与安装的64位可再发行组件相同的问题。在我们的示例中,我们在高级应用程序池属性中将“启用32位应用程序”设置为FALSE,并解决了该问题。

答案 4 :(得分:1)

对我来说,我有一个VB应用程序项目,在编译选项下,我为目标CPU选择了“任何CPU”,并且还检查了“首选32位”。当编译的应用程序在64位计算机上运行时,它只安装了x64运行时,它可能会因此错误而崩溃,因为它尝试作为32位应用程序运行并且需要32位运行时。取消选中此选项并重新编译使其正常工作。

答案 5 :(得分:0)

解决了我的问题。

我有2个NLB 2008 R2服务器,我的IIS配置为在x32中运行。

在一台服务器中,我安装了x64和x32 ​​SAP redist,我有错误,在第二台服务器上只有x32并且有效。

要获得第一台服务器的工作,我卸载了所有版本并仅重新安装了x32,但服务器仅在重新启动后才开始工作。

再见