【问题标题】:How increase timeout on ASP.NET HTTP processes?如何增加 ASP.NET HTTP 进程的超时?
【发布时间】:2013-02-25 20:28:27
【问题描述】:

我们有一个调用存储过程的网页。存储过程大约需要 5 分钟才能运行。从 ASP.NET 调用时,它会在大约 2 分 40 秒时超时,并出现 HTTP 执行超时错误。

我尝试在 web.config 文件中将 HTTP 超时属性设置为:

<httpRuntime executionTimeout="600">

但这并没有帮助。

任何想法表示赞赏。谢谢

【问题讨论】:

  • 也许你已经这样做了,但是......你不能加快存储过程吗?感觉就像修复了没有被打破的末端......
  • 请您发布完整的异常详细信息。我知道您说过这是 HTTP 执行超时,但据我所知,设置 executionTimeout 应该可以解决问题。我想知道您的数据库连接上的超时值是否会导致问题。
  • proc 必须花那么长时间.. 这就是它正在做的事情。这是错误:“/”应用程序中的服务器错误。请求超时。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.Web.HttpException:请求超时。
  • 源错误:在执行当前 Web 请求期间产生了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。堆栈跟踪:[HttpException (0x80004005):请求超时。] 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.17929

标签: asp.net http timeout


【解决方案1】:

您不应该使用可能需要服务器响应时间如此长的页面来创建 Web 应用程序。作为一般规则,您知道将花费超过 10 秒左右的任何时间都应该作为异步过程来完成。您可能已经看到为长时间运行的进程显示“请稍候”屏幕的网站,大多数情况下,这些页面通过将长时间运行的作业委托给后台进程或消息队列来工作,然后轮询直到作业成功完成或出错.

我知道,如果您以前没有这样做过,这似乎是一项艰巨的任务,但它确实是处理您所面临的情况的专业方法。在某些情况下,您的客户端可能正在使用代理服务器的网络工作,该代理服务器设置为中止 HTTP 请求,无论您将超时设置为什么。

这是一个过时的链接,我相信 .NET 框架已经引入了其他方法来做到这一点,但实际上我今天在某些场景中仍然使用以下方法。

http://www.devx.com/asp/Article/29617

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2016-02-12
    • 2010-10-16
    • 2012-06-18
    • 2011-11-08
    • 2017-10-09
    • 1970-01-01
    • 2017-09-17
    相关资源
    最近更新 更多