我有一个托管在IIS上的WCF服务,在应用程序初始化期间,它开始监听RabbitMQ并且它订阅了Q说Q1,在长时间运行服务后,我们看到该服务正在获取消息并且无法处理它。
但是我们确实有不同的Windows服务,它也对订阅不同Q的相同事件感兴趣,说Q2,即使经过长时间运行也能够处理所有事件。
为什么WCF在长时间运行后失败,是否会对Apppool施加线程池密封?需要帮助来调试这个。
注意:两个队列(Q1和Q2)都订阅了连接到交换机的相同消息路径密钥。
好吧,我不确定是否处理,但默认情况下IIS托管的任何内容,AppPools在20分钟后回收/过期,因此如果未调用其服务方法,则完全有可能您的WCF服务不再运行。
尝试将IIS AppPool超时设置为0
以禁用超时。