【问题标题】:Consuming RabbitMQ Queue in IIS hosted WCF service在 IIS 托管的 WCF 服务中使用 RabbitMQ 队列
【发布时间】:2017-12-21 05:07:30
【问题描述】:

我有一个托管在 IIS 上的 WCF 服务,在应用程序初始化期间它开始侦听 RabbitMQ 并订阅 Q 说 Q1,在服务长时间运行后,我们看到该服务正在获取消息并且它处理失败。

但我们确实有不同的 Windows 服务,它也对订阅不同 Q 的相同事件感兴趣,比如 Q2,即使在长时间运行之后也能够处理所有事件。

为什么 WCF 在长时间运行后会失败,是否有线程池密封将施加在 Apppool 上?在调试时需要帮助。

注意:两个队列(Q1 和 Q2)都订阅连接到交换的相同消息路由键。

【问题讨论】:

    标签: c# wcf iis rabbitmq


    【解决方案1】:

    好吧,我不确定是否处理,但默认情况下,IIS 托管的任何 AppPools 都会在 20 分钟后回收/过期,因此如果未调用其服务方法,您的 WCF 服务完全有可能不再运行。

    尝试将您的 IIS AppPool 超时设置为 0 以禁用超时。

    【讨论】:

    • 是的,我忘了提到我们只将 AppPool 超时设置为 0
    • 不要忘记创建自定义服务主机并让您的 AppPool 自动启动
    • 您能否详细说明这在这种情况下有何帮助?因为自定义服务主机在我们进行自托管时会有用吗?
    • docs.microsoft.com/en-us/dotnet/api/…。不,它不是那种自定义主机。这个是IIS专用的
    猜你喜欢
    • 1970-01-01
    • 2022-12-13
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多