【问题标题】:IIS pool duplicates after appdomain restartappdomain 重新启动后 IIS 池重复
【发布时间】:2018-11-26 14:52:29
【问题描述】:

我们有一个应用程序,它从 IBM MQ 主题读取消息并通过 SignalR WebSockets 与用户交互。

案例:

  1. 打开 iis asp.net 应用程序 web.config

  2. 更改并保存(这会导致 appdomain 重启)

  3. 重复步骤 2 10 次

之后,我们可以在日志中看到许多 Application_Start/Dispose 事件,但在 ONE 的 appdomain 重启迭代中没有 Dispose 调用。导致来自旧 AppDomain 的 IBM MQ 侦听器处理消息,因此我们有重复的处理和业务错误。

这似乎限制了 AppDomain 的卸载。

我知道很难说发生了什么,但也许有人知道我们如何追踪这个问题。

禁用重叠回收true

关机时间限制3s

【问题讨论】:

  • 旧的 AppDomain 可能会受到限制很多小时
  • blogs.msdn.microsoft.com/tess/2008/11/06/… 您可以深入了解 ETW 以查看是否可以获得更多信息。这称为appdomain restart,而不是recycle,因此请编辑您的问题以更正该术语的滥用。

标签: c# asp.net .net iis


【解决方案1】:

我在类似情况下所做的 - 在global.asax 上使用此电话

void Application_End(object sender, EventArgs e)
{
     // here signaling the listener to close - and wait until they do
     // also raise the shutdown time limit to more than 3 seconds, give them time to close
}

【讨论】:

    猜你喜欢
    • 2012-03-28
    • 2014-10-16
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    相关资源
    最近更新 更多