如何避免我在ASP.NET中的网页响应超时?

时间:2013-04-01 11:13:19

标签: asp.net timeout response execution-time

我从Excel导入大量数据(100.000行等),并从excel中获取必要的值(大约需要1分钟)

然后我在这些记录中循环并执行一些数据库插入/更新语句。但大约90秒后响应停止。我的页面停止但在后台数据库继续并执行插入/更新作业。

但我无法向用户提供反馈(您的流程已完成或类似),因为响应已结束(超时)。

我尝试在web.config中增加超时时间:

<httpRuntime maxRequestLength="10240" executionTimeout="36000"/>

我也尝试增加该特定页面的executionTimeout,如下所示:

<location path="HomePage.aspx"> <!--Excel import takes too long-->
  <system.web>
    <httpRuntime executionTimeout="360000" maxUrlLength="10000" maxQueryStringLength="80000" maxRequestLength="10240" />
  </system.web>  
</location>

他们没有工作!有什么建议吗?

3 个答案:

答案 0 :(得分:2)

protected void Page_Load(object sender,EventArgs e)         {              ScriptManager.GetCurrent(this.Page)。AsyncPostBackTimeout = 6000;

我将AsyncPostBackTimeout增加到6000,这对我有用。我的linkbutton(长进程)在UpdatePanel

答案 1 :(得分:1)

试试这种方式

<configuration>
  <system.web>
  ...
   <sessionState timeout="90" />
  ...
 </system.web>
</configuration>

见这个

http://asp-net.vexedlogic.com/2012/05/23/aspasp-net-session-timeout-how-do-i-change-it/

http://forums.asp.net/t/1040377.aspx/1

答案 2 :(得分:0)

下面的代码似乎只能与webconfig更改一起使用。

protected void Page_Load(object sender, EventArgs e) { ScriptManager.GetCurrent(this.Page).AsyncPostBackTimeout = 6000;
}

没有这个,它对我不起作用。

<httpRuntime maxRequestLength="102400" executionTimeout="36000" />