ASP.NET Postback超时

3
我有一个包含几个文本框和提交按钮的aspx页面。 点击提交按钮后,从屏幕上的表格/文本框创建一个xml文件。 如果立即操作,那么可以正常工作,但若在20分钟或者更长时间之后点击按钮,则页面会出现错误。
我已经:
 <location path="Default.aspx">
        <system.web>
          <httpRuntime executionTimeout="1000000000"/>
        </system.web>
      </location>

在web.config文件中和aspx页面上使用<asp:ScriptManager ID="ScriptManager1" runat="server" AsyncPostBackTimeout="1000000000" />标签,但在大约20分钟左右仍然超时。您漏掉了什么?

很可能是因为这是默认会话超时时间,所以在20分钟内超时。然而,运行20分钟的任何操作都太长了... - Brian Driscoll
另一个原因可能是IIS默认在20分钟空闲后回收应用程序池。 - Tim Schmelter
你的操作需要20分钟吗?或者用户通常在输入数据之前需要更长时间来填写输入掩码吗? - Th 00 mÄ s
没有实际操作正在进行,只是人们会把窗口保持打开很长时间,当他们在文本框中输入数据并单击提交(经过1小时或更长时间)时,它会出现错误。我正在使用会话变量,所以可能在超时后20分钟后尝试访问它们? - sd_dracula
你遇到了什么错误? - Bastardo
6个回答

2

1
很奇怪,我已经将IIS中的会话超时时间更改为60分钟,但它仍然没有起作用。链接1解决了问题。谢谢。 - sd_dracula

1
在您的 web.config 文件中,很可能有


  <sessionState timeout="20"></sessionState>

你不应该将会话超时时间延长到这个时间之外

如何设置超过20分钟的会话超时时间? 本文解释了所有相关的检查会话超时时间的位置

此外,当你部署应用程序时,请记得检查IIS超时配置


如果 OP 不知道为什么会在 20 分钟后超时,我敢打赌他/她没有那个。不过,20 分钟是默认的 InProc 超时时间,所以它与会话有关是有道理的。 - Brian Driscoll
是的,虽然我认为 SessionState 默认会被添加到 web.config 中。我现在去检查一下… - theedam
我已经将IIS中会话状态页面上的“超时时间(分钟)”从20更改为60,并将检查是否解决了问题。 - sd_dracula

1
也许会话已经结束了,尝试设置SessionTimeOut,或编写一个JavaScript函数定时发送AJAX请求以保持会话活动状态。 但我真的不认为这是正确的方法,如果会话已经结束,应该重定向到登录页面。

这是一个内部网站,无需登录,使用NTLM。 - sd_dracula

1

我正在设置这个在单独的页面和按钮点击事件中。如果您不想在配置中更改应用程序范围的超时时间,似乎可以解决问题。

HttpContext.Current.Server.ScriptTimeout = 90000;

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接