如果在某个(可配置的)时间后没有完成,我想停止Page_Load
,然后将错误写入页面并返回页面。
我尝试过使用各种计时器,如下所示:
在Page_Load
:
System.Threading.Timer t = new System.Threading.Timer(ThrowExceptionAfterTimeElapsed, null, 4000, 10000000);
然后......
void ThrowExceptionAfterTimeElapsed(object sender, EventArgs e)
{
throw new Exception();
}
然后将错误写入catch
Page_Load
中的页面,但由于计时器使用不同的线程,因此无效。
我还在页面上尝试了javascript setInterval
,但是它中的函数从未被调用过(我不知道如何阻止页面从客户端加载到服务器上)。
那么如何停止Page_Load
,运行一些代码行,并将页面返回给客户端?
答案 0 :(得分:0)
使用web.config中的httpRuntime
executionTimout
属性结束求解:
<!-- The time (in seconds) for server to throw a 500 exception
(to be handled by custom redirect. see below customError node).
NOTE: This only works when debug="false" in compilation node.
-->
<httpRuntime executionTimeout="1"/>
<customErrors mode="On" redirectMode="ResponseRedirect" defaultRedirect="~/serverError.html">
<error statusCode="500" redirect="~/serverError.html"/>
</customErrors>
..并创建服务器错误页面