我们的前端 MVC3 Web 应用程序正在使用 AsyncController,因为我们的每个实例都在为数百个长时间运行的 IO 绑定进程提供服务。
由于 Azure 将在某个预定时间间隔后终止“非活动”http 会话(这似乎因您阅读的网站而异),我们如何保持连接有效?
我们的客户必须保持联系,我们的流程将运行 30 秒到 5 分钟或更长时间。我们如何保持客户端连接/活动?我最初想在 Async 方法上设置一个超时,然后用几个字节的输出来访问 Response 对象,有点像将响应分块,然后返回并等待更多。但是,我认为这行不通,因为 MVC3 正在处理 IIS 线程与异步响应的连接,该响应当时已经呈现了一个视图。
我们如何在 AsyncController 上运行一个非常长的进程,但不让客户端被 Azure 负载均衡器断开?向调用者发送立即响应,并要求调用者轮询或检查另一个资源 URL 是不可接受的。