如何让我的 Blazor 服务器端应用程序 IIS 8.5 保持活力
Posted
技术标签:
【中文标题】如何让我的 Blazor 服务器端应用程序 IIS 8.5 保持活力【英文标题】:how to keep alive my Blazor Server side app IIS 8.5 【发布时间】:2021-06-01 05:46:00 【问题描述】:我需要让我的 blazor 服务器端应用程序始终处于活动状态。
我尝试将我的 iis 8.5 启动模式设置为 alwaysrunning,idle 为 0 但仍然关闭应用程序并捕捉到停止信号......在 23 小时到 29 小时之间......
我必须做些什么才能让它保持活力,我错过了哪个设置? 我必须在 web.config 上添加代码吗?
【问题讨论】:
在 IIS 中托管意味着您将获得 IIS 应用程序池回收,这意味着您的应用程序将重新启动。您需要为此配置 IIS,或者如果您确实希望您的应用程序永不重启,请避免在 IIS 中托管您的应用程序。 本文展示了如何禁用29小时进程回收:serverfault.com/questions/333907/… Hangfire 站点上有directions 说明如何保持 ASP.NET IIS 站点始终运行,但尚未针对 ASP.NET Core 进行更新。 @KhalidAb 我刚刚实现了一个 Blazor 服务器应用程序并遇到了同样的问题。这是一个 IIS 配置。让我检查一下,我会确认设置是否与我提供给您的链接不同。只是为了让您知道这个问题与 Blazor 无关。这是一个 IIS 配置问题 @Khalid Ab,我建议您更仔细地查看我提出的解决方案。如您所见,应用程序池回收的默认时间是 1740 分钟 = 29 小时。它与你的观察一致。如果您不相信,您可以在您的 Web 服务器上运行事件查看器,您将看到 IIS 在 29 小时回收应用程序池。请确保您正在配置与您的 Web 服务关联的正确应用程序池。当然,您需要让您的应用运行 29 小时以上才能知道它正在运行 【参考方案1】:默认情况下,在 IIS 中,应用程序池每 29 小时回收一次。这是一个可配置的设置。请将常规时间间隔(分钟)从 1740 更改为 0。设置为 0 意味着应用程序池永远不会回收。 (默认设置见图片)
更改此设置对 Blazor 服务器应用很有帮助,因为否则客户端将在应用程序池回收时与服务器断开连接。这是 Blazor Server 使用的 SignalR 协议的一个怪癖。
【讨论】:
是的,您有权要求解释...我只是更改设置,我会在 29 小时内告诉您它是否对我有用 ;-) 谢谢@Jason 很乐意提供帮助。 Blazor Server 有很多这样的怪癖。如果你能投票那就太好了! 是的,你是对的@Jason D ...我还有另一个问题here,如果你能提供帮助,那将是完美的哈哈......我已经投了赞成票,也批准了你的回答: -)以上是关于如何让我的 Blazor 服务器端应用程序 IIS 8.5 保持活力的主要内容,如果未能解决你的问题,请参考以下文章
IIS 回收应用程序池时如何保持 Blazor 服务器连接处于活动状态
IIS Windows Server 2012 中的 Blazor 问题 - “发生错误。此应用程序在重新加载之前可能不再响应。”