当用户关闭浏览器等待长时间运行的 Web 服务调用时会发生啥?
Posted
技术标签:
【中文标题】当用户关闭浏览器等待长时间运行的 Web 服务调用时会发生啥?【英文标题】:What happens when a user closes their browser waiting for a long running web service call?当用户关闭浏览器等待长时间运行的 Web 服务调用时会发生什么? 【发布时间】:2010-09-29 01:34:18 【问题描述】:我也有类似的问题: http://social.msdn.microsoft.com/forums/en-US/biztalkgeneral/thread/87d5a6ec-04ee-4c6f-8267-f526ee105f0b
我有一个调用 BizTalk Web 服务的 asp.net 网页。 BizTalk 业务流程执行其工作并向 asp.net 页面返回响应。该过程可能需要一两分钟。我遇到了很多超时,但 BizTalk 业务流程似乎平均在 30 秒内返回。
我想知道,如果用户提交他们的请求然后立即关闭他们的浏览器会发生什么。 asp.net 客户端是否停止等待 BizTalk 的请求(并导致超时),或者即使用户关闭了浏览器,它仍然会等待请求?
【问题讨论】:
我自己也想知道这个,其实...... 我也想知道。我的直觉是服务器将无法知道,但也许我错了。 我相信服务器会运行调用,如果返回的客户端不再可用,它会丢弃数据。因此,它基本上会遇到超时(来自服务器本身)或在数据可用时丢弃数据。虽然不是 100%。 【参考方案1】:ASP.NET 请求继续执行,忽略了最初提交 GET/POST 的浏览器不再等待这一事实。请求将完成,除非出现任何其他错误,例如服务器超时。
【讨论】:
行为取决于浏览器和服务器是否都配置为保持连接。如果客户端断开套接字,服务器将关闭会话,中止执行。以上是关于当用户关闭浏览器等待长时间运行的 Web 服务调用时会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章