このコンソール プログラム (WCF ホスト) が Windows XP コンピューターのリモート キュー (MSMQ) で正常に動作するのに、Windows 7 では動作しないのはなぜですか? (.net Framework 4.5(4.0同状況))
Windows Server 2003 R2 上の MSMQ リモート プライベート キュー (メッセージ付き)。1 つのテスト クライアント - Windows XP Prof. 2 つ目のテスト クライアント 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