加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – Azure Web角色 – 长时间运行请求(负载均衡器超时?)

发布时间:2020-12-16 06:59:56 所属栏目:asp.Net 来源:网络整理
导读:我们的前端MVC3 Web应用程序正在使用AsyncController,因为我们的每个实例都在为数百个长时间运行的IO绑定进程提供服务. 由于Azure会在一些预先确定的时间间隔后终止“非活动”http会话(这似乎取决于您阅读的网站),我们如何保持连接活动? 我们的客户必须保持
我们的前端MVC3 Web应用程序正在使用AsyncController,因为我们的每个实例都在为数百个长时间运行的IO绑定进程提供服务.

由于Azure会在一些预先确定的时间间隔后终止“非活动”http会话(这似乎取决于您阅读的网站),我们如何保持连接活动?

我们的客户必须保持联系,我们的流程将持续30秒到5分钟或更长时间.我们如何保持客户端连接/活动?我最初想过在Async方法上有一个超时,只是用几个字节的输出来命中Response对象,有点像分块响应,然后再返回等待一些.但是,我不认为这会起作用,因为MVC3正在处理IIS线程与异步响应的连接,异步响应在那时已经呈现了一个视图.

我们如何在AsyncController上运行一个非常长的进程,但是Azure负载均衡器不能断开客户端的连接?向呼叫者发送立即响应,并要求呼叫者轮询或检查其他资源URL是不可接受的.

解决方法

Azure负载均衡器空闲超时为4分钟.您是否可以尝试在客户端配置TCP keep-alive少于4分钟,这应该保持连接活动?

另一方面,长时间保持每个客户端的连接是相当昂贵的.这将限制每台服务器可以处理的客户端数量.此外,我认为如果IIS认为需要连接来提供其他请求,IIS仍可能决定关闭连接而不管保持连接.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读