当前位置: 首页 > 知识库问答 >
问题:

WCF-basicHttpBind配置(异常:对传出消息进行身份检查失败)。远程endpoint的预期DNS标识...(

顾曾笑
2023-03-14

我正在尝试在VisualStudio中创建soap客户端。我做的第一件事是使用交付的WSDL文件生成代理类(使用VisualStudio中的添加服务引用选项)。它是使用错误的绑定配置生成的-消息安全性应为:DefaultAsymmetricSignatureAlgorithm-http://www.w3.org/2001/04/xmldsig-more#rsa-sha256“默认规范化算法-”http://www.w3.org/2001/10/xml-exc-c14n#“和算法——”http://www.w3.org/2001/04/xmlenc#sha256",

尽管如此:DefaultAsymmetricSignatureAlgorithm“http://www.w3.org/2000/09/xmldsig#rsa-sha1“默认规范化算法”http://www.w3.org/2001/10/xml-exc-c14n#“和默认算法”http://www.w3.org/2000/09/html" target="_blank">xmldsig#sha1".

我在应用程序中更改了basicHttpBinding设置。通过添加:

<security mode="Message">
            <message algorithmSuite="Basic256Sha256" clientCredentialType="Certificate"/>
</security>

并且绑定设置正确更改,我还设置了证书:

var cert = new X509Certificate2(AppDomain.CurrentDomain.BaseDirectory + "//cert.p12", "Pass");
client.ChannelFactory.Credentials.ClientCertificate.Certificate = cert;
client.ClientCredentials.ClientCertificate.Certificate = cert;

不幸的是,我遇到了一个异常:没有为目标服务器提供服务证书http://.../service“。请在ClientCredentials中指定服务证书。

我尝试对ClientCertificate和ServiceCertificate使用相同的证书(我不知道它是否正常)。

客户端。客户证书。服务证书。DefaultCertificate=证书

但我得到了一个错误:使用的证书有一个无法验证的信任链。更换证书或更改certificateValidationMode。

将模式更改为“无”会导致找不到例外安全性。

我添加了

我还尝试添加

但我还有一个错误:传出消息的标识检查失败。远程终结点的预期DNS标识为“nameA”,但远程终结点提供了DNS声明“nameB”。如果这是合法的远程终结点,您可以通过在创建通道代理时将DNS标识“nameB”显式指定为EndpointAddress的标识属性来解决此问题

我不确定我是否走对了路。我不知道该怎么办:(

一般来说,使用SoupUI发送请求工作正常,但我无法在客户端服务中进行正确配置以发送任何请求。


共有1个答案

祁辰阳
2023-03-14

当您更改证书时,您需要更新它:

<identity>
     <certificate encodedValue="xxx" />
</identity>

它可能仍然指向原作。

 类似资料: