我有一个ASP.NET Web应用程序调用ASP.NET Web服务,然后它自己调用报告服务中的报告,以便将报告保存到文件中。整个过程应该等到报告出现之后,然后通过可下载的pdf报告返回链。
问题是报告生成时间超过90秒,并且Web应用程序中的页面超时,等待它从调用返回以生成报告。该报告最终会生成,但我希望页面能够继续等待它。
我已经尝试在IIS7中的'ASP''Limits-Properties'中设置一些名为'Script Time-out'的东西,这是在1:30到5:00,但没有区别。我已经为我的Web应用程序和Web服务做了这个,但是不要认为(可能不正确)它需要在报告服务中做,我无论如何都找不到设置,因为总是生成报告以便它本身不会出错。
我也尝试过改变 < httpRuntime maxRequestLength =“32768”executionTimeout =“60000”/> 设置20000毫秒以查看它是否超时更快并且它再次没有效果,这并不奇怪,因为它会发生超时应该是在我改变之前的60秒,而不是90。 / p>
那么如何将其更改为等待报告的时间更长?
答案 0 :(得分:1)
您应该查看http://msdn.microsoft.com/en-us/library/e1f13641.aspx以更改您的web.config并增加executionTimeout
配置。
这不会解决您长时间运行的问题,也许会产生另一个问题。
您可以尝试创建异步引擎来处理该报告。当用户要求报告时,将其放入MSMQ队列并进行后台处理;完成后,发送附有该报告的电子邮件。
通过这种方式,您的用户无需在应用程序内等待,并且可以将他/她的想法转向另一个主题。
答案 1 :(得分:1)
我可能错了,但我担心在客户端浏览器上设置超时。 你能从另一个角度来看待这个吗?即。返回一个“加载”页面,每5秒刷新一次,直到报告准备好?
答案 2 :(得分:0)
您对网络服务的调用将超时。确保将其设置为适当的值,但最好是在数据可用后刷新加载页面。
答案 3 :(得分:0)
超时也可能受到网站前面的防火墙或代理的限制。