0

2 つのエンドポイントを持つ 1 つのサービスがあります。1 つのエンドポイントは wsdual バインディング用で、別のエンドポイントは tcp バインディング用です。wcfsvchost.exeでwcfサービスを開始すると

WcfSvcHost.exe /service:"C:
\Users\TRIDIP\Documents\Visual Studio 2010\Projects\BBAChatService\BBAChatService\bin
\BBAChatService.dll" /config:"C:\Users\TRIDIP\documents\visual studio 2010\Projects
\BBAChatService\BBAChatService\Web.config"

その後、私のサービスが開始されました。

問題は、WcfSvcHost.exe でサービスを開始した後にクライアント側でプロキシを作成しようとすると、すべてのエンドポイント関連情報がクライアントの構成ファイルに追加されることですが、クライアント側から tcp mex エンドポイントまたは mexHttpBinding を使用してプロキシを作成するときにのみ必要です。すべてのエンドポイントではなく、有効なエンドポイントをクライアントの構成ファイルに追加する必要があります。サービス終了時に構成ファイルで何を変更するかを教えてください。これがサービス終了時の私の設定ファイルです....見てください。

<service name="BBAChatService.ChatService" behaviorConfiguration="BBAChatService.ChatServiceBehavior" >
        <host>
          <baseAddresses>
            <add baseAddress ="http://localhost:8732/ChatService.svc/"/>
            <add baseAddress ="net.tcp://localhost:7998/ChatService/"/>
          </baseAddresses>
        </host>

        <endpoint name="dual_bind"
                  address="dual"
                  binding="wsDualHttpBinding" 
                  bindingConfiguration="WSDualHttpBinding_IChatService" 
                  contract="BBAChatService.IChatService">
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>

        <endpoint name="tcp_bind"
              address="tcp"
              binding="netTcpBinding"
              bindingConfiguration="tcpBinding"
              contract="BBAChatService.IChatService">
        </endpoint>

        <endpoint address="net.tcp://localhost:7996/ChatService/mex"
                          binding="mexTcpBinding"
                          contract="IMetadataExchange"/>


      </service>

私の設定で何を変更するかを教えてください。ありがとう

4

1 に答える 1

1

同じサービスで複数のエンドポイントを公開する場合、WSDL に複数のポートがあり、svcutil (サービス参照の追加) は、提供されたすべてのポートの構成をインポートします。WSDL は、サービスに対して定義されたすべてのエンドポイントを常に公開し、svcutil はそれらすべてを操作します。

クライアント構成を手動で変更してクライアント側の HTTP エンドポイント構成を削除するか、サービスをそれぞれ単一のエンドポイントを持つ 2 つの異なる実装に分割する必要があります。

于 2013-01-15T09:24:02.513 に答える