ASP.net 2.0中水晶报表迁移部署问题

asp.net 2.0的水晶报表,在迁移机器的时候,如果目标机器没有相应的程序集,在IIS中会报错。 错误描述:

Parser Error Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

Parser Error Message: Could not load file or assembly ‘Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The system cannot find the file specified.

【解决方法】

进入你的开发使用机器的c:\windows\assembly目录查看,是否有以下程序集安装在GAC中(如图):

由于资源管理器是使用了shell扩展来查看GAC中安装的程序集,所以我们无法看到这些程序集当前部署的真实目录在什么地方。我们可以直接在命令行模式中进行查看,进入X:\windows\assembly目录,然后查找和水晶报表相关的程序目录(如图):

我们可以大致看到GAC的部署结构了。我们在浏览器中所看到的一个一个的assembly名称,其实对应于assembly目录下面的每一个目录命名。进入具体的目录,还有一级子目录,这个目录的命名,是根据发布到GAC的程序集的版本号加上后面的公钥标记组成。(见上图的下面的红色标记部分)

再进入子目录,我们就可以看到公有部署的程序集,所存在的真正位置了。(如图):

接下来的工作就好办了,拷贝程序集到目标机器上,然后运行gacutil /i filename,将程序集安装到GAC即可。需要拷贝的程序集如下:

1) Microsoft.ReportViewer.Common.dll

2) Microsoft.ReportViewer.ProcessingObjectModel.dll

3) Microsoft.ReportViewer.WebForms.dll

支持原创技术分享,据说打赏我的人,都找到了女朋友!