【问题标题】:how to keep alive my Blazor Server side app IIS 8.5如何让我的 Blazor 服务器端应用程序 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 小时以上才能知道它正在运行

标签: asp.net-core iis blazor blazor-server-side keep-alive


【解决方案1】:

默认情况下,在 IIS 中,应用程序池每 29 小时回收一次。这是一个可配置的设置。请将常规时间间隔(分钟)从 1740 更改为 0。设置为 0 意味着应用程序池永远不会回收。 (默认设置见图片)

更改此设置对 Blazor 服务器应用很有帮助,因为否则客户端将在应用程序池回收时与服务器断开连接。这是 Blazor Server 使用的 SignalR 协议的一个怪癖。

【讨论】:

  • 是的,您有权要求解释...我只是更改设置,我会在 29 小时内告诉您它是否对我有用 ;-) 谢谢@Jason
  • 很乐意提供帮助。 Blazor Server 有很多这样的怪癖。如果你能投票那就太好了!
  • 是的,你是对的@Jason D ...我还有另一个问题here,如果你能提供帮助,那将是完美的哈哈......我已经投了赞成票,也批准了你的回答: -)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多