请帮忙。我有一个在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中,因此我们没有在应用程序中引用它。当我们将其添加为参考时,无论我们在应用程序中的哪个位置,我们都会收到此错误,而不仅仅是在报告页面上。请帮忙!
答案 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位机器,你可能会遇到这里讨论的问题:
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,但服务器仅在重新启动后才开始工作。
再见