2011-07-01 8 views
1

私はWCFを初めて使用していますが、私は「noob」問題を抱えています。私はサイトを検索し、私が探している答えが見つかりませんでした。私はこれが既に答えられていて、それを逃した場合は謝罪します。2つの異なるエンドポイントバインディングを使用して1つのWCFサービスに接続します。

ChannelFactoryを使用してプログラムで接続しています。私が持っている問題は、私が2番目のもの(MSMQ 1)をコメントアウトしない限り、クライアントが私の最初のサービスエンドポイントに接続できないということです。うまくいけば助けてくれます。

契約が異なり、私はクライアント側で正しいバインディング(WSDualHttpBindingとNetMsmqBinding)を指定しています。

この問題を解決する方法がある場合、または詳細が必要な場合は教えてください。

私は助けていただきありがとうございます。

タイラー

<services>   
    <service behaviorConfiguration="DefaultBehavior" name="[intentionally removed]"> 
     <endpoint 
      address="[intentionally removed]" 
      behaviorConfiguration="DefaultEndpointBehavior" 
      binding="wsDualHttpBinding" 
      bindingConfiguration="DualBinding" 
      name="WrapperEndpoint" 
      contract="[intentionally removed]" 
     /> 
     <endpoint 
      address="[intentionally removed]" 
      behaviorConfiguration="DefaultEndpointBehavior" 
      binding="netMsmqBinding" 
      bindingConfiguration="MsmqBinding" 
      name="MsmqEndpoint"  
      contract="[intentionally removed]" 
     /> 
    </service> 
</services> 
+0

エンドポイントアドレスは異なりますか。また、どのようにChannelFactoryを使用しているかを示すコードスニペットを投稿できますか? – Tim

+0

あなたは「契約は違う」と述べましたが、私はそれらが同じであることを期待しています。あなたのコードでは、両方のために 'IContract'を使っているようです。 2つのエンドポイントの契約が同じインターフェイスか、異なるのですか?私は通常、WCFはそれらを同じにしたいと考えています。 – CodingWithSpike

+0

クライアントが接続できないときにエラーが発生しましたか?また、WCFサービスでトレースを有効にし、ログから意味のあるものが得られるかどうかを確認することもできます。http://msdn.microsoft.com/en-us/library/ms751526.aspx – CodingWithSpike

答えて

0

このトピックでは、関連するかもしれない:http://social.msdn.microsoft.com/Forums/is/wcf/thread/643371b4-00a7-472b-8bea-3055f2eb90ed

私はあなたが2つの異なる契約を結んでいる単一のサービスを持つことができるとは思いません。私はあなたが両方のエンドポイントを持っていると思うが、WCFはちょうど正常に起動していないのだが、1つのエンドポイントをコメントアウトすると、すべてのエンドポイントが同じ契約を共有するのでうまく機能する。

WCFも契約に基づいてサービス(エンドポイントではない)のWSDLを定義しようとしますが、サービスに1つ以上の契約がある場合、何をすべきか分かりません。

適切なことは、これを2つのサービスに分割することです。


編集:一方

this articleは異なる契約を結んで複数のエンドポイントとサービスを持つことだけで正常に動作するので、おそらく私が間違っていることを示しています。

Hmmm ....

関連する問題