ActiveReport使用心得(五):"No Report Specified"错误的可能原因(轉)
2010-03-24 14:53
477 查看
本来今天想写一下ActiveReport的子报表的问题的,可是这几天在测试报表的时候,总被一个问题困扰着,那就是在查看报表时,有时会出现"No Report Specified"的情况.除了这个提示信息之外,报表的内容什么也不显示.故障出现的概率比较随机,没有什么特别的规律.经过自己的摸索,目前暂时不出现这种错误了,不知道是否是最终解决方案.不过还是先在此记录下来,哪位有更好的解决方案,也希望告诉我一声.
首先,是上google查的,找到了ActiveReport的官方网站有关这个问题的回复,地址是:http://www.datadynamics.com/forums/109470/PrintPost.aspx.硬着头皮啃了下英文,大意明白了,不过有关这个问题,最后官方网站也没给出明确的答案.大概的说法是发生这种错误的可能原因是"ASP.NET进程循环后者iis重启导致缓存中的报表丢失,造成报表不能显示,因此,建议设置iis的应用程序池以解决这个问题."由于我的开发机器的iis版本是5.1,没有"应用程序池"的设置,只有"应用程序保护"的设置,将"应用程序保护"级别调为"高",重启iis后,发现偶尔还是会出现"No Report Specified"的情况.在这页回复中,官方给的一个解释是先确认Http Handlers配置正确,在这个链接对应的页中,我看到如下说明:
从中我们可以看出,这个解决方案主要是针对报表可以在Html viewer类型下正常显示,但是在AcrobatReader viewer下显示为空的解决方案.其中说到对.ArCacheItem映射的动作限制权限为"GET,HEAD,POST,DEBUG".我当时是按它的官方文档的截图进行的动作限制设为"所有动作".会不会是这个问题呢,先修改一下吧.修改后的截图:
修改后重启iis,再次测试,到目前为止还没发现"No Report Specified"错误.
从官方文档及网站的说明来看,报表生成后是放到缓存里的,当iis重启或asp.net进程被停掉的时候,存储在缓存中的报表即全部丢失.因此官方网站建议为使用了ActiveReport的应用程序建立独立的应用程序池,同时可能由于某些操作会导致缓存中的报表丢失,因此,官方建议将.ArCacheItem映射限制权限为GET,HEAD,POST,DEBUG".当然这是在开发环境的设置,在生产环境中,应该限制为"GET,POST,HEAD"即可.
另外我想说的是,要注意下WebViewer控件的两个属性:
MaxReportRunTime:这个属性是设置报表生成的最大时间,单位为秒,默认为10秒,如果你的报表内容较多,网络速度又不是很快的话,建议把这个时间设的长点,比如我这里设的是30秒.
SlidingExpirationInterval:这个属性是设置报表在缓存队列中存放的时间,默认为20分钟,超过这个时间时,缓存中的报表会丢失.
还有一点值得注意的是,在官方文档有关WebViewer控件的Report的属性的描述中,有如下描述:"If the control is being loaded in response to a client postback ( ) the property will not use the specified report. Instead the control uses a previously cached copy of the report's Document in the WebCache service to supply speedy responses to clients. To force the client to accept the new instance, call the ClearCachedReport property before setting this property. " 大意是:当客户端的回发导致这个控件被重新加载的时候,该控件将不再使用指定的报表,而是使用WebCache中的前一次缓存的报表副本来响应客户端的请求,为了强制生成一个新的实例,在设置report属性前先调用ClearCacheReport方法.
相关文章推荐
- ActiveReport使用心得(五):"No Report Specified"错误的可能原因
- "No Report Specified"错误的可能…
- ActiveReport使用心得(六):"Printer does not support A4 papersize."错误的解决(轉)
- C#关于"该进程无法访问文件,因为该文件正由另一进程使用"的错误的一点心得(示例)
- "xxadmin" user: No protocol specified 错误
- 使用viewport布局控件老是在报"No center region defined in BorderLayout "的错误
- [vue.js] prop验证没有错误信息的可能原因:没有使用开发者版本
- 关于使用springmvc时Failed to load resource: the server responded with a status of 400 (Bad Request)错误可能原因
- PHP IIS "No input file specified." 错误
- ActiveReport使用心得(六):"Printer does not support A4 papersize."错误的解决
- Qt错误:类中使用Q_OBJECT宏导致undefined reference to vtable for "xxx::xxx"错误的原因和解决方法
- 访问samba服务器错误:"您可能没有权限使用网络资源"
- 在eclipse中使用git时出现"There are no stages files"错误
- 分析器错误信息: 在应用程序级别以外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。导致该错误的原因可能是在 IIS 中没有将虚拟目录作为应用程序进行配置。
- no argument specified with option "/LIBPATH:"错误的解决
- nginx 下 thinkphp 502 bad Gateway + "LNMP一键安装包的Nginx 502 Bad Gateway错误可能原因及解决方法"
- 包含了头文件还有"Error[Li005]: no definition for"之类的错误原因
- 报这个错误的原因:No identifier specified for entity:
- no argument specified with option "/LIBPATH:"错误的解决【转载】
- 在应用程序级别之外使用注册为allow Definition="MachineTo Application"的节是错误的,如果IIS中没有将虚拟目录配置为应用程序,则可能导致次错误!