【问题标题】:Web app deployed on kestrel goes into idle mode部署在 kestrel 上的 Web 应用程序进入空闲模式
【发布时间】:2018-01-01 19:59:29
【问题描述】:

我在 IIS 7.5 (Windows 2008 R2) 上部署了 ASP .Net 核心 webapi。我有执行相同功能的控制器和侦听器类(等待消息到达 RabbitMQ 消息)。

问题是每当 webapi 部署在 IIS 上或有一些空闲时间时,RabbitMQ 消息都不会被拾取。只有当我对控件进行 API 调用时,应用程序才会“唤醒”并接收消息。

我尝试过的调整: 在应用程序池中,

  1. 将“空闲超时”设置为 0。
  2. 将“禁用重叠回收”设置为 true。
  3. 设置“禁用回收配置更改”。

我不知道是什么原因造成的。我需要应用程序立即接收消息并且没有空闲时间。谁能指出我正确的方向?

【问题讨论】:

  • 您能否提供有关如何以及何时收听 RabbitMQ 消息的代码部分。您是否还看到 w3wp.exe 进程始终在 IIS 服务器中运行?
  • 你有没有找到任何替代解决方案而不发送不必要的消息

标签: asp.net-core iis kestrel


【解决方案1】:

作为一种完整的解决方法,您可以通过始终发送请求来保持您的应用处于活动状态。就我而言,我什至无法更改 IIS 设置。

要发送请求,我使用 Application Insights 中的 Availability 功能——它允许您创建测试,每 5 分钟向您的应用发送 GET 请求。你可以阅读更多关于它的信息here

【讨论】:

    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 2016-12-25
    • 2010-10-26
    • 2013-04-22
    • 2020-08-06
    • 2018-05-15
    • 2014-05-21
    • 2015-04-04
    相关资源
    最近更新 更多