TCPとHTTPの2つのバインディングを使用しています。両方のバインディングに関するmexデータを提供したいと思います。私が欲しいのは、mexHttpBindingがHTTPサービスのみを公開し、mexTcpBindingがTCPサービスのみを公開することです。または、HTTPバインディングからのみ統計サービスにアクセスし、TCPからeventLoggingサービスにアクセスすることは可能ですか?
例えば:
TCPの場合、私は
net.tcp://localhost:9001/ABC/mex net.tcp://localhost:9001/ABC/eventLogging
HTTPの場合
http://localhost:9002/ABC/stats http://localhost:9002/ABC/mex
(WCFテストクライアントを使用して)いずれかのベースアドレスに接続すると、すべてのサービスにアクセスできますか?net.tcp:// localhost:9001 / ABCに接続するときのように、HTTPバインディングで提供されるサービスを使用できます。どうしてこんなことに?
<system.serviceModel>
<services>
<service behaviorConfiguration="ABCServiceBehavior" name="ABC.Data.DataServiceWCF">
<endpoint address="eventLogging" binding="netTcpBinding" contract="ABC.Campaign.IEventLoggingService" />
<endpoint address="mex" binding="mexTcpBinding" bindingConfiguration="" contract="IMetadataExchange" />
<endpoint address="stats" binding="basicHttpBinding" contract="ABC.Data.IStatsService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9001/ABC" />
<add baseAddress="http://localhost:9002/ABC" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ABCServiceBehavior">
<serviceMetadata httpGetEnabled="false" />
<serviceDebug includeExceptionDetailInFaults="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>