Server.ScriptTimeout值不在ASP.Web页面中更改

时间:2015-08-17 21:34:47

标签: asp.net

我有两个报告页面需要在asp.net 2.0内部网网站上额外处理时间。该网站的有效期为90秒,但我在报告页面上设置到期时间为1800秒的尝试总是失败,超时时间约为90秒。

报告页面在@Page行下面的aspx页面中有<% Server.ScriptTimeout = 1800; %>。以前,我在页面加载的代码中设置此值。在任何一种情况下,页面都会在大约90秒后到期。

web.config有executionTimeout =&#34; 90&#34;和编译debug =&#34; false&#34;。更改executionTimeout始终有效,但我不希望整个站点在1800秒到期,只是报告页面。

另外,我已经在主系统.web设置下面尝试了web.config设置:

<location path="Reports">
  <system.web>
   <httpRuntime executionTimeout="1800"/>
  </system.web>
</location>

第四次尝试是在&#34;报告&#34;中创建一个web.config文件。子文件夹中。这也失败了。

我感谢任何反馈。 (代码是键入的,不是复制的)

1 个答案:

答案 0 :(得分:0)

只有在web.config中将 Debug 设置为 False 时,executionTimeout属性才有效。

我假设您使用的是asp.net表单,为什么不尝试为所有报表页面创建一个基础来覆盖Page load和OnUnload事件。

     //On Report Page Base class

private const int PageRequestTimeout = 1800;
private const int DefaultRequestTimeout = 110;// 110 seconds  

protected override void OnLoad(EventArgs e)
 {
     Server.ScriptTimeout = PageRequestTimeout;
      base.OnLoad(e);
 }
 protected override void OnUnload(EventArgs e)
 {
       Server.ScriptTimeout = PageRequestTimeout;
        base.OnUnload(e);

       // reset  the page request timeout
        Server.ScriptTimeout = DefaultRequestTimeout;
 }

MSDN阅读如下MSDN Reference

  

如果在元素中将元素的debug属性设置为true   Web.config文件中,ScriptTimeout的值将被忽略。