認証なしでnetTcpBindingにトランスポートセキュリティを使用することは本当に不可能ですか? 私は本当に自分のサービスに証明書を使用したくありません。以下でサービスの構成を使用しましたが、サービスホストを開始すると、以下で説明するアプリケーションエラーが発生します(証明書を求めて、についても言及しませんでした)アプリ内のどこでも証明書)。ただし、サービス資格情報をビヘイビアーに配置した後、サービスが実行を開始します。誰かがこれの原因を教えてもらえますか?
エラー : 「サービス証明書が提供されていません。ServiceCredentials でサービス証明書を指定してください。」
<service name="ConsoleApplication1.WCFService1" behaviorConfiguration="" >
<endpoint address="net.tcp://localhost:853/WCFService1" binding="netTcpBinding"
bindingConfiguration="SecurityCheckBinding" name="TCPEndpoint" contract="ConsoleApplication1.IService1" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:853/WCFService1" />
</baseAddresses>
</host>
</service>
<bindings>
<netTcpBinding>
<binding name="SecurityCheckBinding">
<security mode="Transport">
<transport clientCredentialType="None" ></transport>
</security>
</binding>
</netTcpBinding>
</bindings>
このシナリオでは、上記のエラーが発生していましたが、信頼できる証明書の params を指定したところ、実行が開始されました。
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehaviour">
<serviceCredentials>
<serviceCertificate findValue="MyTestCA" x509FindType="FindByIssuerName" storeLocation="LocalMachine" storeName="My" />
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>