我们有一个应用程序,该应用程序从IBM MQ Topic中读取消息并通过SignalR WebSockets与用户进行交互。
案例:
打开iis asp.net应用程序web.config
更改并保存它(这会导致应用程序域重新启动)
重复步骤2 10次
此后,我们可以在日志中看到许多 Application_Start / Dispose 事件,但是在 ONE 的appdomain重新启动迭代中,没有 Dispose 通话。由于旧的AppDomain发出了IBM MQ侦听器处理消息,因此我们有重复的处理和业务错误。
似乎要限制AppDomain的卸载。
我知道很难说发生了什么,但是也许有人知道我们怎么能追踪到这个问题。
禁用重叠回收为 true
关闭时间限制为 3秒
答案 0 :(得分:0)
我在类似情况下的处理方式-在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
}