私のサービスにはsvcファイルがありません。configエントリを参照して、1つのtcpエンドポイントに対して1つのmexエンドポイントが宣言されていることに間違いなく気づきます。
だから私の質問は、私のサービスにwshttp、wsDualhttp、tcp、m smqなどの多くのエンドポイントがある場合、異なるエンドポイントのタイプごとにmexエンドポイントを宣言する必要がありますか?
これが、サービスがホストされているサービス構成の詳細です。
<services>
<service name="ChatService.ChatHandler" behaviorConfiguration="behaviorConfig">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:1648/ChatService/" />
<add baseAddress="http://localhost:1647/ChatService/" />
</baseAddresses>
</host>
<endpoint address="tcp"
binding="netTcpBinding"
bindingConfiguration="tcpBinding"
contract="ChatService.IChat"/>
<endpoint address="net.tcp://localhost:1645/ChatService/mex"
binding="mexTcpBinding"
contract="IMetadataExchange"/>
</service>
</services>
編集部
したがって、Marc_Sの回答について理解できることから、MEXエンドポイントがなくても、私のサービスは完全に機能します。
誰かがあなたのサービスとインターフェースしたい場合は、他の方法で関連情報を提供する必要がありますが、それらのクライアントはMEXを介してサービスを「自動検出」および検査できないため、たとえばダウンロードを提供する必要があります誰かがサービスのMEXエンドポイントをインタラクティブに照会せずにクライアントを構築できるようにWSDLと付随するXSDファイルの..私は正しいですか?
mexが無効になるときに、クライアントが私のサービスのプロキシを作成する他の方法はありますか?
次に、サービスの終了時に、クライアントがサービスを呼び出すために使用するプロトコルを判別する方法はありますか?wshttp、wsdualhttp、tcp、msmqなどの複数のエンドポイントがあるとしますか?