使用WebViewer来浏览报表,常会出现以下错误而导致报表无法显示:
FlashViewer
文件读取错误,附加信息:error#2032
未声明"SwfObject"。
报表不可用
其他类型Viewer:
未指定报表
报表不可用。
如果发生以上错误,可能会有多种原因导致。请检查以下内容是否正确:
1. 文件路径是否正确
2. IIS 配置错误
3. Web.config 文件中描述错误
4. Web Garden 配置错误和Load Balancer 错误
5. 为WebViewer 控件重复设置报表
6. 通过Session 变量为WebViewer 控件设置报表
7. 报表生成过程中出错
8. 设置无法执行的虚拟打印机
9. 服务器处于高负载状态
10. 无法连接网络(FlashViewer 需要联网使用)
1. 是否将必要的文件引入,并设置路径正确,尤其是在使用FlashViewer 时需要将安装目录下的“Grapecity.ActiveReports.Flash.v9.swf” 等文件引入到项目中。
2. IIS配置错误。
(1)如果是从客户端发送请求到服务器端,需要创建报表,并将存于ASP.NET 缓存中(ASP.NET 工作进程中),并作为报表来处理(缓存的后缀名.ar10)
(2)在服务器端,产生使用WebViewer浏览报表的HTML 和报表元素,并返回给客户端。
(3) 当客户端浏览器将HTML 捕获,会处理调用报表数据的请求;
(4) 为了响应报表数据的请求,获取之后返回给客户端。
(5) 客户端加载报表
- 如果IIS 的handler(extension mapping)配置不正确,则过程的4-5也无法正常执行,则会在客户端报错,如果正确引入则不会报错。可以在产品文档中查看如何正确配置Web执行环境。
- 为每个扩展正确设置Mapping,如果拼写不争取也会报错
- 根据所使用的扩展的类型,设置Mapping,不同的扩展设置也不一样,请确认以下复选框是否被正确设置。
“.rpx”和“.rdlx”
IIS 7/8:“只有当Checkbox 处于“ON”状态才能正确请求handler”
".ActiveReport" and ".ar9", ". Ar9Web"
IIS 7/8 ::“只有当Checkbox 处于“Off”状态才能正确请求handler
在以上情况下,IIS的配置模式“经典”或“集成”模式,内容设置也是不同的,请注意“Classic”[script map add…],而Integration[Managed handlers addiional…]
以上排除错误的解决方法都是基于“Default Web site”的,同样适用于其他独立的网站,请确保mapping正确。
3. 在Web.config文件的描述不正确
当在页面中加载WebViewer时,将被自动添加字符串,如Web.config文件的<HttpHandlers>部分。 字符内容描述了程序集版本,如果程序集版本不正确,则Web查看器控件无法正常工作。对于Web.config文件中的问题,是在运行时发出的,因此请检查WebConfig文件中版本是否正确。
4. Web Garden 配置正在配置和加载平衡
WebViewer控件由于它的特殊性,对于Web Garden 配置并不可用(状态多处理已经开始)。
5. 重复为WebViewer设置报表
如何为WebViewer绑定报表,有两种方式:1.在代码中设置WebViewer的Report属性;2. 在设计器中设置WebViewer的ReportName 和Report属性。设置Report的优先级高于ReportName,因为设置可以使得忽略代码中的Report设置,则会根据默认设置生成报表。则导致WebViewer控件无法加载报表。如果1和2中都使用了ReportName属性来设置,并且在设计时设置为空,请检查操作是否正确。
6. 通过Session 变量设置WebViewer报表
如果想设置报表,需要在代码中设置Report属性,当报表对象,通过Session变量传值,则会报出“AccessViolationException (※)”异常(AccessViolationException 信息:Attempted to read or write protected memory. This is often an indication that other memory is corrupt.)当使用Session传报表对象时,报表可能在会在时被丢弃。结果就是内部操作无法正常工作。因此为了避免此类错误,请尽量别使用Session来传Report对象。
7. 报表生成时报错
或者未设置WebViewer的Report属性。如果报表未成功创建,请检查处理的内容,考虑输出的信息,这些都可以在微软官网中查询。
8. 设置不可用的虚拟打印机
如果存在合适的打印机和打印机驱动,那么驱动打印机将被创建,但不支持报表尺寸的设置。
9. 服务器处于高负载状态
如果执行环境是的状态处于高负载状态。报表输出是无法被正确执行的,报表正确的呈现也是很难保证的;容易导致报表数据的缓存在加载过程中丢失,是因为工作进程占用的内存一直在循环调用,在IIS,如果达到一个确定的阈值,因为它已经变成工作进程循环,高负载,资源紧缺的一种机制,如果报表在运行,循环出现,这种现象则很容易导致该状态出现,如何在加载报表时,减少内存的使用,
10. 无法连接网络(FlashViewer 需要联网使用)
FlashViewer需要连接网络下载Flash Player,但如果无法连接网络,则导致Flash内部处理错误,报表就不会正常显示,如果无法连接网络,则考虑将
- runtime shared libraries 拷贝到服务器中FlashViewer的Grapecity.ActiveReports.Flash.v9.Resources.swf存放路径下。以下两个文件都由Adobe公司提供,可在官网上查到。然后设置MIME类型:
- framework_4.5.1.21328.swz
- textLayout_2.0.0.232.swz
- Extension: .swz
- MIME type: application / x-swz