当页面渲染超时时会发生什么?

时间:2010-02-19 22:10:18

标签: c# asp.net iis

我有一个问题,我无法找到答案......

如果你有一个ASP.Net页面需要比请求超时更长的时间来呈现该进程会发生什么? Web服务是否中止了?

假设我正在将XML写入ASP.Net页面中的响应流,并且它会超时调用我的GenerateXML方法。我的方法调用会发生什么?是否完成但Web服务器报告超时?还是流产了?

我可能会写一个测试来查看我自己的结果,但我认为可能还有更多。

2 个答案:

答案 0 :(得分:1)

让我们澄清一下: 您的问题中至少有两个超时(1)会话超时(2)请求超时。最常见的情况是请求超时 - 因为客户端不希望等待几分钟直到服务器处于活动状态。和往常一样,请求的生命周期少于会话。在这种情况下,服务器以通常的方式终止请求 - 通过引发ThreadAbortException。即使一切正常,也会引发此异常,只是为了终止请求处理。

当会话结束时 - 客户端甚至不应该知道它。只有您具有自动化客户端才会被重定向到登录页面。但服务器代码可能会丢失会话中存储的数据。

答案 1 :(得分:0)

由于渲染过程对会话超时本身一无所知,我的假设是渲染完成没有任何问题。只是当用户对发送回服务器的呈现页面执行操作时,就会实现tiemout。

我现在无法通过任何证据来支持这一点,但对我而言,这是最符合逻辑的行为。其他任何东西都需要在渲染过程中进行额外的超时检查,这会花费cpu time(= money),但不会以任何方式改善会话安全性。