wcf - 如何在启动时使用 WCF 和 IIS 连接到 ActiveMQ

标签 wcf startup activemq appfabric

组合使用 ActiveMQ 并在 IIS/AppFabric 中运行的单实例 WCF 服务的最佳方法是什么?

我们的服务需要支持 HTTP 传输和 ActiveMQ(监听和发送消息)。我们选择不使用 MSMQ,而将使用 Spring.Net.NMS。我现在遇到的根本问题是 ActiveMQ 需要在启动时连接到队列并保持连接,但 WAS 妨碍了它的消息激活功能。如果服务在消息到达(HTTP/MSMQ 等)之前未激活,则不会触发与 AMQ 的连接。

我知道我可以禁用回收行为,并且我知道我可以使用 Windows 服务进行自托管。但我想利用 AppFabric 中的监控和其他功能。我已经开始使用 IServiceBehavior 并将其用于其他美好的事情。但直到(非 AMQ)消息到达时才会调用该接口(interface)。所以它不会为这个工作。我所希望的是 ServletContextListeners 在 Java 中的工作方式,您可以在其中获取启动和关闭事件。但 WAS 中似乎不存在这样的东西......它仅由到达的消息驱动。

我已经搜索了三天的网络信息,唯一遇到的就是使用静态类构造 (C#) 技巧作为触发器。这是一个黑客行为,但我可以忍受。它仍然留下了彻底关闭的问题,我稍后可以解决这个问题。

有人有解决这个问题的办法吗?

最佳答案

Ladislav 提到的对 ActiveMQ 的直接 WCF 支持仍然受到支持。该模块已经有一段时间没有正式发布了。但是,您仍然可以从 1.5.x 分支或主干获取最新版本并自行编译。

1.5.x 分支与 Apache.NMS 1.5.0 一起使用: https://svn.apache.org/repos/asf/activemq/activemq-dotnet/Apache.NMS.WCF/branches/1.5.x/

查看说明: http://activemq.apache.org/nms/source.html

关于wcf - 如何在启动时使用 WCF 和 IIS 连接到 ActiveMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6306462/

相关文章:

windows - 如何在 Windows XP 上的 startup.bat 文件中设置 HeapDumpOnOutOfMemoryError 和 HeapDumpPath

Azure 启动脚本未执行

c# - 与 Apache ActiveMQ 兼容的 .NET Compact Framework 3.5 消息传递框架?

c# - WCF 测试客户端服务调用失败

wcf - 在 ASP.NET MVC 项目上使用 Unity 解决 ServiceRoute 中的依赖项

c# - 使用 WCF 和 F# 的进程间通信

java - 如果 ThreadPoolTask​​Executor 没有可用容量,则将消息保留在 ActiveMQ 队列中

.net - WCF 和 NetTcp 绑定(bind)

android-studio - 如何强制 Android Studio 从欢迎屏幕启动?

java - 如何在 Windows 上将 ActiveMQ 安装为 64 位服务?