【问题标题】:changing ASP.NET page timeout更改 ASP.NET 页面超时
【发布时间】:2010-12-26 08:44:42
【问题描述】:

我有一个 ASP.NET Web 应用程序调用 ASP.NET Web 服务,然后该服务本身调用报表服务中的报表,以便将报表保存到文件中。整个事情应该等到报告在那里,然后用可下载的 pdf 报告返回链条。

问题在于生成报告的时间超过 90 秒,并且 Web 应用程序中的页面在等待它从调用返回以生成报告时超时。报告最终生成,但我希望页面继续等待。

我尝试在 IIS7 中的 'ASP' 'Limits-Properties' 下设置一些名为 'Script Time-out' 的东西,它是在 1:30 到 5:00,但没有什么区别。我已经为我的 Web 应用程序和 Web 服务完成了此操作,但不认为(可能不正确)它需要在报告服务中执行,无论如何我都找不到设置,因为始终生成报告,因此它本身不会出错。

我也尝试过改变 设置 20000 毫秒以查看它是否更快地超时并且它再次没有效果,这并不奇怪,因为它会在我更改它之前超时应该在 60 秒内,而不是 90 秒。

那么我该如何更改它以等待更长时间的报告?

【问题讨论】:

    标签: asp.net iis-7 web-services report


    【解决方案1】:

    我可能错了,但我担心客户端浏览器上设置了超时。 你能从另一个角度来解决这个问题吗? IE。返回一个“加载”页面,每 5 秒刷新一次,直到报告准备好?

    【讨论】:

    • 我无法在 Firefox 3.5 或 IE8 中找到该设置,但在服务器上设置执行超时似乎并不能解决问题(无论调试是假的还是真 - 它说它必须是假的msdn.microsoft.com/en-us/library/e1f13641.aspx 但仍然没有效果)。因此,我们将做一个保留页面,并按照建议进行背景检查。
    【解决方案2】:

    您应该查看 http://msdn.microsoft.com/en-us/library/e1f13641.aspx 以更改您的 web.config 并增加您的 executionTimeout 配置。

    这不会解决您长期存在的问题,并且可能会产生另一个问题。

    您可以尝试创建一个异步引擎来处理该报告。当用户请求报告时,将其放入 MSMQ 队列并在后台处理它;完成后,发送一封附有该报告的电子邮件。

    这样您的用户无需在您的应用程序中等待,并且可以将他/她的注意力转移到另一个主题上。

    【讨论】:

      【解决方案3】:

      您对网络服务的调用将超时。确保将其设置为适当的值,但最好有一个加载页面,一旦数据可用就会刷新。

      【讨论】:

        【解决方案4】:

        超时也可能受到网站前面的防火墙或代理的限制。

        【讨论】:

          猜你喜欢
          • 2011-04-25
          • 2013-05-20
          • 2012-06-18
          • 2012-01-30
          • 1970-01-01
          • 1970-01-01
          • 2010-09-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多