为什么此控制台程序(WCF 主机)在 Windows XP 计算机上与远程队列 (MSMQ) 一起正常工作,但在 Windows 7 上却不工作?(.net Framework 4.5(4.0相同情况))
Windows Server 2003 R2 上的 MSMQ 远程专用队列(带有消息)。一个测试客户端 - Windows XP Prof. 第二个测试客户端 Windows 7 Prof. 两台机器上的相同配置文件。
MSMQ 在所有机器上安装并启动。
我有一个用于 WCF 的程序主机(控制台主机)。
var host = new System.ServiceModel.ServiceHost (typeof (TestMessageReceiver ));
host.Faulted += HostFaulted;
host.Open();
配置文件(部分):
<system.serviceModel>
< services>
< service behaviorConfiguration =" myBehavior" name="TestMSMQwin7.TestMessageReceiver" >
< endpoint address="net.msmq://zzz.zzz.zzz.com/private/rbcmessagestest"
binding="netMsmqBinding"
bindingConfiguration="ReceiverMSMQconfig"
contract="RBC.Receiver.ContractInterfaces.IMessageReceiver" />
< host>
< baseAddresses>
< add baseAddress="http://xxx.xxx.xxx.com:8089/MessageReceiver" />
</ baseAddresses>
</ host>
</ service>
</ services>
< behaviors>
<!--...-->
</ behaviors>
< bindings>
< netMsmqBinding>
< binding name =" ReceiverMSMQconfig" maxReceivedMessageSize="5242880" maxBufferPoolSize="5242880" >
< readerQuotas maxDepth =" 32" maxStringContentLength= "5242880 " maxArrayLength="16384" maxBytesPerRead =" 4096" maxNameTableCharCount= "16384 "/>
< security mode =" None" />
</ binding>
</ netMsmqBinding>
</ bindings>
</system.serviceModel>
和问题:为什么这个控制台程序(WCF 主机)在运行 OS Windows XP 的计算机上连接并很好地与远程队列(接收消息)一起工作,但在运行 Windows 7 的计算机上却不能工作?
在 Windows 7 计算机上,我有下一个异常(host.Open();):
System.InvalidOperationException HResult=-2146233079 Message= 绑定验证失败,因为端点侦听 URI 不代表 MSMQ 直接格式名称。服务主机打不开。确保对端点的侦听 URI 使用直接格式名称。源=System.ServiceModel