我们这里的一个团队刚刚使用 WCF 和 N服务总线。当我审查该项目时,我发现他们选择了托管 IIS 中的 WCF 服务和 NServiceBus 而不是 NServiceBus 主机。
当我询问为什么会这样时,我被告知他们托管 WCF 服务时 (在 TCP 绑定(bind)上)在 WCF 定期“获取”的 NServiceBus 主机中 卡住'。这在实践中意味着通常大约每天一次 WCF 服务将开始主动拒绝连接。
据我了解,IIS 内部有自定义代码来监控运行状况 的 WCF 端点并在它们“卡住”时重新启动它们。我想 避免在 IIS 中托管,因为您没有获得所有基于约定的优点 使用 NServiceBus 主机。
任何人都可以进一步阐明这个问题或建议我们可以采取的方法吗 在使用 NServicebusHost 时避免这个问题?
PS 我意识到问题的描述有点含糊,我也希望有人能够帮助我改进问题。
最佳答案
我无法理解将所有内容托管在一个容器中的必要性。您不能通过 Windows 服务中的通用主机在 IIS 和 NSB 端点中托管 WCF 端点吗?然后可以将它们作为单独的关注点进行管理。
关于NServiceBus 主机问题中的 WCF 服务托管,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8410030/