gpt4 book ai didi

asp.net - 需要解决方法 : Windows Azure load balancers close idle connections after 60 seconds

转载 作者:行者123 更新时间:2023-12-02 23:21:44 25 4
gpt4 key购买 nike

一个简单的问题。我有一个可以生成报告的 ASHX 处理程序。遗憾的是,此过程可能需要 2 分钟或更长时间才能完成,并且 Azure 将在此处理程序响应之前关闭连接。为什么?由于连接空闲时间过长,因此被杀死。
所以,我需要以某种方式保持这种联系。为了使其更复杂一些,处理程序是从 Silverlight 应用程序调用的,该应用程序将从当前网页上的框架调用处理程序,或者(当不从浏览器运行时)创建一个新的浏览器实例来调用处理程序。
我的挑战是用最少的代码来解决这个超时问题。而且,代码需要像现在一样工作!

在单独的框架或浏览器窗口中打开处理程序可以将报告保存在用户系统上的任何位置。如果我从 Silverlight 代码中下载它,我将没有适当的写入权限。任何需要写入本地磁盘的 Silverlight 应用程序都不会获得任何权限,因此需要使用浏览器/框架来解决。

最佳答案

不太确定 HTTP 传输,但您当然可以在套接字级别使用 TCP keep-alives。但是,您需要创建套接字监听器来下载 HTTP 内容(有点过分了)。

也许有更简单的解决方案?为什么不让客户端发出生成报告的请求,并让处理程序将 SAS 签名(有时间限制的只读签名)返回到报告最终放入 Blob 存储的位置。这非常快并且不需要打开 TCP 连接。报告生成器应该简单地在要下载到发送到客户端的 Blob 位置的文件中创建报告(任何 GUID 都可以在此处工作),而不是通过响应将其流式传输回来。最后,客户端只需要轮询该位置,直到获得文件。现在,您可以很好地异步处理短的打开连接,并且不必担心 TCP 超时问题。执行此操作的代码远比解决 TCP 超时问题的任何代码复杂得多。

关于asp.net - 需要解决方法 : Windows Azure load balancers close idle connections after 60 seconds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6609199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com