关于RTS报表一个很奇怪的问题
系统中使用Microsoft.Reporting.WebForms.ReportViewer控件展示RTS报表,但是有两个根本不包含任何RTS相关代码的页面,偶尔会报TargetInvocationException和ReportServerException异常。
1)该问题只是偶尔访问上述两个页面时发生,访问其它页面、访问上述两个页面绝大多数时候不发生;
2)在好几个不同环境的客户端都发生过,在部署的两个服务端站点都出现过;
3)发生问题前,客户端之前多数情况都没有访问过报表服务;
4)发生问题时,关闭窗口再次打开仍然报错,只能关闭掉浏览器窗(会话)重开,重新登录才可解决;
5)发生问题时,另一个客户端或浏览器访问同一页面功能正常;
6)发生问题时,iis返回500服务器错误;
7)这两个页面中没有任何使用Report Service组件的代码。
因为是偶发错误,因此没有在错误发生时跟踪调试,只在发生其中一类错误(TargetInvocationException)时,抓取了一个dump包,异常堆栈不贴了,从错误堆栈信息看,是调用了“Microsoft.Reporting.WebForms.ServerReport..ctor(SerializationInfo info, StreamingContext context)”引发的错误,但是没有找到调用的过程和数据。另外,检查该构造函数,发现其签名为“internal”,且程序集的“InternalsVisibleTo”属性只设置了“Microsoft.ReportViewer.WebDesign”和“RVExceptionTest”,不理解怎么能被调用。
求高人指点下,怎么会调到这个构造函数。