ASP.NET3.5应用程序中的Crystal Reports Viewer

时间:2009-10-21 22:54:04

标签: crystal-reports asp.net-3.5

我创建了一个ASP.NET3.5网站,里面有一个crystalreportviewer,如果我在visual studio 2008或我自己的机器上运行它可以正常工作。但是当我在Web服务器上部署项目时,它开始给我错误。

首先,它在第一页上发现错误 CrystalDecision.web程序集无法找到,然后我在我的Web服务器上安装了Crytal Runtime 2008。安装后应用程序似乎没问题,但是当我用CrystalReportViewer打开页面时,它给了我不同的错误,如下所示:

找到的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)

关于它的任何想法??

3 个答案:

答案 0 :(得分:1)

您可能在服务器和开发机器上的晶体组件版本略有不同。比较两者中c:\ windows \ assembly中的版本号,看看是否存在差异。如果有,请更新服务器或更改web.config中程序集的版本号。

此外,The located assembly's manifest definition does not match the assembly reference

答案 1 :(得分:1)

花了差不多2小时后我终于找到了解决办法。

  1. 从Web服务器卸载Crystal Reports运行时。
  2. 检查Web服务器是否仍有\ program files \ Business对象文件夹,如果仍然存在则删除它。确保其他应用程序不依赖于它。

  3. 授予\ windows \ Temp文件夹上ASPNET用户的读写权限

  4. 立即安装Crystal Report运行时。
  5. 重新启动IIS
  6. 遵循这些步骤应该解决水晶报表查看器问题。

    但是又出现了一个问题,水晶报表查看器没有显示图标,原因是水晶报表查看器在网站的根文件夹中查找 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之后想出了这个。