停止页面加载并在一定时间后返回结果

时间:2015-09-17 12:30:34

标签: asp.net

如果在某个(可配置的)时间后没有完成,我想停止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,运行一些代码行,并将页面返回给客户端?

1 个答案:

答案 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>  

..并创建服务器错误页面