7

我有一个带有 netMsmqBinding 的 WCF 服务。我的客户端可以将消息发送到我的队列,并且当服务运行时,它会按预期从队列中检索消息。如果服务未运行,则接收到的消息将排队等待服务启动。

我的问题是当消息进入队列时服务没有启动。该服务托管在 IIS 中,因此在 IIS 收到请求之前不会对其进行实例化。如果我浏览到该服务,那么它会处理队列中的消息,但显然这不是我想要的处理队列的方法!

我希望我需要更改服务实现,或更改 IIS 设置,但我不知道在哪里更改或更改什么。

更新

有人真的在 WCF 上使用 MSMQ 吗?我让这个工作了很短的时间 - 我在同一台服务器上的不同网站上启用了绑定,奇怪的是 - 但现在它又以某种方式停止工作了。

我遇到的唯一问题是当队列中有消息时服务的激活。目前,队列仅在服务实例化时处理,例如当我浏览 .svc 文件时。我在应用程序上启用了 net.msmq 协议,并且在站点上启用了 net.msmq 绑定......我还需要做什么吗?

4

3 回答 3

5

您明确需要为非 HTTP 激活配置 IIS。我不知道我头顶的所有细节,但基本上你需要使用 appcmd 来配置和启用 net.msmq 绑定激活。

检查此博客文章此截屏视频应该为您提供所有详细信息。

于 2009-09-09T12:21:58.383 回答
3

这可能会节省我花费的时间:http: //msdn.microsoft.com/en-us/library/ms731053.aspx

于 2009-10-23T15:22:16.433 回答
2

我相信我在 WCF 上使用 MSMQ 绑定的问题主要围绕 IIS。

我在使用带有 IIS 6 的 Windows XP / Server 2003 时遇到了无穷无尽的问题。

使用带有 IIS 7.5 的 Windows 7 或 Server 2008 一切正常。

一个更好的建议是将 MSMQ 作为托管服务/Windows 服务或独立应用程序而不是在 IIS 下运行。

于 2011-09-13T02:35:13.923 回答