【发布时间】:2011-06-10 12:38:44
【问题描述】:
结合使用 ActiveMQ 并在 IIS/AppFabric 中运行的单实例 WCF 服务的最佳方式是什么?
我们的服务需要同时支持 HTTP 传输和 ActiveMQ(侦听和发送消息)。我们选择不使用 MSMQ,将使用 Spring.Net.NMS。我现在遇到的基本问题是 ActiveMQ 需要在启动时连接到队列并保持连接,但是 WAS 的消息激活功能妨碍了它。如果服务在消息到达(HTTP/MSMQ 等)之前未激活,则不会触发与 AMQ 的连接。
我知道我可以禁用回收行为,并且我知道我可以使用 Windows 服务进行自托管。但我想利用 AppFabric 中的监控和其他功能。我已经使用 IServiceBehavior 走上了这条路线,并将把它用于其他好东西。但是在(非 AMQ)消息到达之前,不会调用该接口。所以它不会为此工作。我希望的是类似于 ServletContextListeners 在 Java 中的工作方式,您可以在其中获得启动和关闭事件。但在 WAS 中似乎不存在这样的东西......它仅由到达的消息驱动。
我已经搜索了 3 天的每一寸网络信息,我唯一遇到的就是使用静态类构造 (C#) 技巧作为触发器。这是一个黑客,但我可以忍受它。它仍然留下干净关闭的问题,我可以稍后解决。
有人对此有可靠的解决方案吗?
【问题讨论】:
标签: wcf startup activemq appfabric