IIS& ASP.NET:当客户端断开连接时,请求工作进程会发生什么?

时间:2016-09-08 15:07:59

标签: asp.net iis

上下文:我们在AWS负载均衡器后面运行我们的ASP.NET站点,该站点在60秒后发出请求。对我们网站的第一次请求可能需要更长的时间,而缓存热身等。我们可以对此策略做出明显改进,但这与此问题的关键点不同。

假设我们的IIS实例的连接在60秒后关闭,那么就我的代码运行而言,执行该请求会发生什么?

是吗

  • 继续,即使没有人将最终回复发送给?
  • 杀死进程 - 可能是在某些磁盘IO操作期间?
  • 运行服务器配置的超时值?
  • 做一些更聪明的事情?

1 个答案:

答案 0 :(得分:1)

这实际上取决于您的代码。

如果你的循环/工作需要太长时间,那么它等待结束,然后如果他们将一些数据发送到连接并发现连接已关闭则会有异常。我的意思是,如果没有数据发送到客户端以检查连接是否丢失 - 那么您的进程仍将运行到最后。

在女巫的情况下,死循环将关闭并挂起取决于池配置。在那里你可以设置最长运行时间,然后是必须等待的时间,直到他杀死你的非响应过程。

函数HttpResponse.IsClientConnected检查客户端是否仍然连接,如果您想检查并中止一些长时间的过程,可以使用它。