我是WCF编程模型的新手,我想使用netTcpBinding
。在我问下面的问题之前,这是我的自定义绑定:
<customBinding>
<binding name="basic">
<security authenticationMode="UserNameForCertificate"/>
<binaryMessageEncoding/>
<httpsTransport/>
</binding>
</customBinding>
当我使用简单的控制台应用程序创建服务引用时,它会找到证书并要求我使用它。这样我就可以使用webservice了......
但是当我使用netTcpBinding
更改绑定到TransportWithMessageCredential
时,服务正在寻找证书,但无法找到它:
<netTcpBinding>
<binding name ="sdfsd">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
<transport clientCredentialType="None"/>
</security>
</binding>
</netTcpBinding>
ServiceCertificate.SetCertificate(StoreLocation.LocalMachine, StoreName.My, X509FindType.FindByIssuerName, "Contoso.com").
此时我使用CustomNameValidator
并以编程方式执行此操作。
因此,当netTcpBinding
与TransportWithMessageCredential
一起使用时,为什么对SetCertificate
的调用找不到已安装的证书?我错过了什么吗?或者我必须添加一些东西吗?
答案 0 :(得分:0)
<customBinding>
<binding name="basic">
<security authenticationMode="UserNameForCertificate"/>
<binaryMessageEncoding/>
<httpsTransport/>
</binding>
</customBinding>
我尝试转换的和netTcpBinding是:
<netTcpBinding>
<binding name ="sdfsd">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="UserName"/>
<transport clientCredentialType="None"/>
</security>
</binding>
</netTcpBinding>