【问题标题】:Can I change a webpage timeout threshold in ASP.NET for a single page?我可以在 ASP.NET 中为单个页面更改网页超时阈值吗?
【发布时间】:2010-02-10 17:17:42
【问题描述】:

当用户点击链接时,我们会实时生成和提供报告。

当然,在我们上线后,我们发现一些用户有足够的数据导致报告运行缓慢,以至于出现超时。

从长远来看,我们将通过创建一个页面来解决这个问题,该页面定期查找已完成的报告,并在它准备好时加载它。但就目前而言,如果可能的话,我们想要一个快速解决方案来解决眼前的问题。

有没有办法延长单个网页的超时时间?

我发现 this 这似乎表明它是可能的(但这似乎是一个非常糟糕的主意,因为它会在网络通话期间改变整个网站,更糟糕的是,它似乎可能多次命中同步也有问题,可能会使整个站点的超时时间更长)

我还在本地找到了this,但它并没有最终回答这个问题(尽管它确实提供了我们将朝着这个方向发展的长期解决方案。)

【问题讨论】:

    标签: asp.net timeout


    【解决方案1】:

    如果页面位于(或可以移动到)其自己的目录中,您可以将 web.config 放在该目录中,其中仅包含 executionTimeout 或您想要扩展的任何其他设置。即

    <?xml version="1.0"?>
    <configuration>
        <appSettings/>
        <connectionStrings/>
        <system.web>
          <!-- allow for intensive calculations in reports -->
          <httpRuntime executionTimeout="6000" /> 
        </system.web>
    </configuration>
    

    根据first link you provided 的一位评论者的说法,设置Server.ScriptTimeout = 3600; 不是全局更改,因此您可能还需要重新考虑该选项。

    Gerald 写了 re: Timeout of an ASP.NET 页面
    2006 年 11 月 29 日星期三下午 3:38
    一世 决定检查这个的有效性 通过编写一个包含 两页。在其中一页我是 将 ScriptTimeout 属性设置为 3000,而在其他页面 属性值不变。 事实证明,加载后 第一页,然后是第二页, ScriptTimeout 中的值 第二页恢复为默认值 值(释放 90 秒, 30000000 用于调试)或设置的值 在配置文件中。在 结论,ScriptTimeout 属性,当在一页中更改时, 不会在全局级别更改。

    【讨论】:

    • 合二为一的好答案。希望我能两次投票给你。我试一试后会回来接受的。
    • 正确。现在我只需要在我的手指上系一根绳子(或球和链子),以确保它最终以正确的方式固定。非常感谢。
    • (作为记录,我使用了两个选项中的第二个,但我怀疑第一个也可以。)
    • 很高兴为您提供帮助 - 我这周也一直在处理报告超时问题,所以我恰好设置了第一个解决方案。
    猜你喜欢
    • 2010-12-26
    • 2011-10-11
    • 1970-01-01
    • 2015-08-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    相关资源
    最近更新 更多