gpt4 book ai didi

c# - Azure Web应用程序负载平衡超时问题,获取 HTTP 状态 500 和子状态 121

转载 作者:行者123 更新时间:2023-12-03 04:31:30 26 4
gpt4 key购买 nike

我们有一个网站,可以加载和分析 Excel 数据并向用户报告。现在,分析 Excel 数据的过程平均需要 5 分钟以上(取决于数据),在此期间客户端服务器通信似乎闲着。

此网站作为 Web 应用程序托管在 Azure 上,根据以下链接,Azure 似乎有负载平衡超时

https://azure.microsoft.com/en-us/blog/new-configurable-idle-timeout-for-azure-load-balancer/

在此链接中提到

In its default configuration, Azure Load Balancer has an ‘idletimeout’ setting of 4 minutes.

This means that if you have a period of inactivity on your tcp or httpsessions for more than the timeout value, there is no guarantee tohave the connection maintained between the client and your service.

由于此问题,最终用户不断获得 HTTP 状态 500 和子状态 121。

目前我们无法重新架构系统,也无法更改作为 Web 应用程序的部署。

我们尝试按照设定的时间间隔向服务器发送 Jquery ajax 请求,但这似乎不起作用。

上面的文章讨论了使用 ServicePoint.SetTcpKeepAlive() 保持 TCP session 处于事件状态,但我们不知道如何在 MVC Web 应用程序中实现这一点。(在网上也没有找到任何示例)

我们确实需要解决这个问题,因为这可能会成功或破坏我们的项目。因此,我们非常感谢您的帮助。特别是在 MVC 应用程序中使用 ServicePoint.SetTcpKeepAlive() 的任何工作示例代码都非常受欢迎

提前致谢。

更新

我尝试了 Irb 提到的内容,但仍然没有运气。正如您在给定图像中看到的那样,我反复调用 KeepSessionAlive。每次调用 KeepSessionAlive 时,我都会访问 session 变量,确保 session 不会超时。但仍然调用保存返回 500。同样,这只发生在 Azure 中

enter image description here

最佳答案

返回 json 的 Web API 方法不会始终保持 session 处于事件状态。如果您请求调用 session 的某些内容,那么您可以从客户端按定时间隔调用它。像使用 jpeg Web 处理程序请求图像这样简单的事情就可以工作。 Here是类似内容的链接。

关于c# - Azure Web应用程序负载平衡超时问题,获取 HTTP 状态 500 和子状态 121,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36050833/

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