我创建了一个ASP.NET3.5网站,里面有一个crystalreportviewer,如果我在visual studio 2008或我自己的机器上运行它可以正常工作。但是当我在Web服务器上部署项目时,它开始给我错误。
首先,它在第一页上发现错误 CrystalDecision.web程序集无法找到,然后我在我的Web服务器上安装了Crytal Runtime 2008。安装后应用程序似乎没问题,但是当我用CrystalReportViewer打开页面时,它给了我不同的错误,如下所示:
找到的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)
关于它的任何想法??
答案 0 :(得分:1)
您可能在服务器和开发机器上的晶体组件版本略有不同。比较两者中c:\ windows \ assembly中的版本号,看看是否存在差异。如果有,请更新服务器或更改web.config中程序集的版本号。
此外,The located assembly's manifest definition does not match the assembly reference
答案 1 :(得分:1)
花了差不多2小时后我终于找到了解决办法。
检查Web服务器是否仍有\ program files \ Business对象文件夹,如果仍然存在则删除它。确保其他应用程序不依赖于它。
授予\ windows \ Temp文件夹上ASPNET用户的读写权限
遵循这些步骤应该解决水晶报表查看器问题。
但是又出现了一个问题,水晶报表查看器没有显示图标,原因是水晶报表查看器在网站的根文件夹中查找 aspnet_client \ system_web \ 2_0_50727 文件夹。在我的情况下,我的服务器上有多个网站,包括.NET 1.1,2.0和ASP,所以我有这个网站的wwwrootASP2.0文件夹。但默认情况下,Web服务器在默认网站(wwwroot)下创建了 aspnet_client \ system_web \ 2_0_50727 文件夹。因此,修复方法是,将 aspnet_client \ system_web \ 2_0_50727 文件夹复制到您网站的根目录中。答对了 !!!!!!现在工作正常。
我希望它会有所帮助,
干杯。
答案 2 :(得分:0)
我只是想补充说,一种更简单的方法似乎是在你的Web应用程序下创建一个名为aspnet_client的虚拟目录,该目录指向C:\ Inetpub \ wwwroot \ aspnet_client。
这也使得水晶报告查看器上的图像显示出来。它是在运行在服务器2003上的IIS上使用visual studio 2008 crystal basic进行测试的。
我在阅读http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/e2dc93b3-e594-4ae6-ba92-9440ccc7f6be之后想出了这个。