可以安全地在IIS中托管NServiceBus发布者吗?

我想知道在IIS中托管作为事件发布者的NServiceBus端点是否安全?

为了澄清,我们使用IIS中托管的应用程序作为我们的CRM系统(Microsoft Dynamics CRM),并且我希望在更新联系人信息时使用NServiceBus发布事件。
MS CRM允许使用自定义插件来响应联系人更新,我打算创建一个插件,通过NServiceBus发布“ContactUpdated”事件。 因此,这实际上意味着我的NServiceBus事件发布端点托管在IIS中。

现在,我知道自托管的NServiceBus端点将创建自己的工作线程,以监视来自队列的传入消息(在本例中为订阅消息)。 因为如果没有更多的传入Web请求,IIS可以自由卸载工作进程,因此使用IIS来托管长时间运行的进程通常不是一个好主意 。 但是,我会说NServiceBus队列监视线程不符合长时间运行的进程,因为它不进行任何处理并且可以随时停止:新的订阅请求将简单地排队,直到Web应用程序为止。再次重启。

我只是想知道从NServiceBus的角度来看,IIS清理这个NServiceBus线程的方式是否安全?

(顺便说一下,我也发现了这篇文章,但我不得不承认只有Scaling out论证才能引起我的共鸣,这与我们的情况无关。)

是的,在IIS中托管NServiceBus发布端点是安全的。

正如您所说,如果IIS要卸载您的工作进程,那么任何待处理的订阅请求都将在队列中等待。 这是合理的 – 只要您不对订阅请求的处理顺序和发布的新事件做出任何假设。