次の構成でサービスを作成しました
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="CommonUserNameBinding" maxConnections="1000" portSharingEnabled="True">
<security mode="None">
</security>
</binding>
</netTcpBinding>
</bindings>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
<services>
<service name="MyNameSpace.SimplePluginService" behaviorConfiguration="CommonBehavior">
<endpoint address="UserName"
binding="netTcpBinding"
bindingConfiguration="CommonUserNameBinding"
name="MyNameSpace.Contracts.ISimplePluginServiceUserName"
contract="MyNameSpace.Contracts.ISimplePluginService">
<identity>
<dns value="WCfServer" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:5812/Service/SimplePluginService.svc"/>
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CommonBehavior">
<serviceMetadata httpGetEnabled="True" policyVersion="Policy15" />
<serviceDebug includeExceptionDetailInFaults="True"/>
<serviceCredentials>
<userNameAuthentication
userNamePasswordValidationMode="Custom"
customUserNamePasswordValidatorType="Megatec.MasterTourService.CustomUserNameValidator, Megatec.MasterTourService"/>
<serviceCertificate
findValue="WCFServer"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName"/>
<clientCertificate>
<authentication certificateValidationMode="PeerTrust" />
</clientCertificate>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
ローカル IIS 7.5 でデバッグします。サイトとアプリケーションのアクティブなプロトコル リストに「net.tcp」があります。
net.tcp の IIS バインディングは 5812:*
次のエラーが発生しました
URI 'net.tcp://myComputerName:5812/Service/SimplePluginService.svc/mex' に対応する TransportManager が見つかりません。これは、仮想アプリケーションの外部を指す絶対アドレスを使用したか、エンドポイントのバインド設定が他のサービスまたはエンドポイントによって設定されたものと一致しないことが原因である可能性があります。同じプロトコルのバインディングはすべて、同じアプリケーションで同じ設定にする必要があることに注意してください。
次の質問 No compatible TransportManager errorを読みましたが、うまくいきません。
更新します。問題は mex エンドポイントに関連しています。
サービス用に別のエンドポイントを (別のバインディングと認証タイプで) 作成できますが、mex エンドポイントは TransportManager でエラーを起こしました。
私のテストによると、動作とセキュリティ モード (バインディング セクション) には依存しません。
では、mex エンドポイントの何が間違っているのでしょうか?