3

我正在尝试使用 MSMQ 设置一个非常简单的 WCF 服务。我正在按照这里的步骤。当我去运行我的服务并加载 .svc 文件时,我收到以下错误:

The protocol 'net.msmq' is not supported.

这是我的配置的相关部分:

<services>
  <service name="MSMQService.MSMQService">
    <host>
      <baseAddresses>
        <add baseAddress="http://technoka1-l7:9999/"/>
      </baseAddresses>
    </host>
    <endpoint address="net.msmq://technoka1-l7/private/MSMQService.svc"
              binding="netMsmqBinding" contract="MSMQService.IMSMQService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>

任何有关如何修复的想法将不胜感激。我查看了很多为 IIS 提供建议的不同地方,但现在它正在 Cassini 中运行。

4

5 回答 5

2

这看起来像是您从 IIS 得到的错误。如果您在 IIS 中托管您的服务,请查看这篇关于设置 IIS 以处理netMsmqBinding. 对于在 Windows 服务中托管,这个旧的 Byte 表单帖子足以让您继续前进。

于 2012-10-23T16:42:23.753 回答
1

我建议您切换到 IIS,该协议必须在 IIS 本身中启用,您使用控制台、服务等的事实并不重要。您的服务的主机是 IIS,它是激活器,因为您使用的协议以及您使用它的方式。

参考: http: //geekswithblogs.net/LessonsLearned/archive/2010/12/27/the-protocol-net.msmq-is-not-supported.aspx

于 2012-10-23T17:44:07.563 回答
1

看起来Cassini 只支持 http,所以没有办法直接从 Visual Studio 运行。

于 2012-12-03T21:29:20.897 回答
1

1)如果您手动托管服务(使用控制台或其他 Windows 应用程序),一切正常。
2) 如果尝试启动 wcf 服务应用程序,则不支持 msmq 绑定。我还没有找到解决这个问题的方法。
3) 如果您使用 IIS 托管 wcf 服务,请确保 SITE 和 APPLICATION 都支持 msmq 协议:

  1. 站点->绑定。如有必要,添加 msmq 绑定。
  2. 站点-> 扩展设置-> 活动协议。如有必要,添加“net.msmq”。
  3. 应用程序-> 扩展设置-> 活动协议。如有必要,添加“net.msmq”。
于 2013-10-29T05:46:12.203 回答
0

我还在寻找一种在直接从 Visual Studio 运行的 IIS 中调试 WCF net.msmq 服务的方法。我遇到了这篇很棒的帖子,它允许我这样做。

http://codenamesean.wordpress.com/2012/09/26/debugging-a-net-msmq-wcf-service-hosted-in-iis-7/

  • 通过选择 IIS 中虚拟目录的“Browse *:80 (http)”链接启动 w3wp.exe 进程
  • 调试菜单 => 附加到 w3wp.exe 进程
  • 运行客户端
  • 通过单击虚拟目录并浏览到您的 Service.svc 来激活 Windows Process Activation Service。(注意:我不必执行此步骤即可对其进行调试。)
于 2014-04-07T14:39:57.500 回答