You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WCF basicHttpBinding配置出现远程端点DNS身份校验失败问题求解

解决方案

1. 绑定算法配置验证

你之前修改的basicHttpBinding配置algorithmSuite="Basic256Sha256"已经满足算法要求:该算法套件默认使用rsa-sha256作为非对称签名算法、sha256作为摘要算法,规范化算法也和要求一致,无需额外调整。

2. 证书验证规则配置

仅需要在客户端终结点行为中配置验证规则,服务行为节点是服务端使用的,客户端配置不生效,App.config配置参考如下:

<behaviors>
  <endpointBehaviors>
    <behavior name="CustomClientBehavior">
      <clientCredentials>
        <serviceCertificate>
          <authentication certificateValidationMode="None" revocationMode="NoCheck" />
        </serviceCertificate>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>

然后给客户端终结点绑定该行为:

<endpoint address="http://.../service" binding="basicHttpBinding"
  bindingConfiguration="你的绑定配置名" contract="服务引用生成的接口名"
  behaviorConfiguration="CustomClientBehavior" />

3. DNS身份校验错误修复

该错误是因为服务端证书的DNS声明和请求终结点默认预期的DNS不匹配,可任选一种方式修复:

方式一:代码配置终结点身份

创建客户端实例时手动指定匹配的DNS身份:

var serviceAddress = new EndpointAddress(
    new Uri("http://.../service"),
    EndpointIdentity.CreateDnsIdentity("nameB")
);
var client = new 你的服务客户端类(serviceAddress);

方式二:App.config配置终结点身份

在endpoint节点下添加identity配置:

<endpoint address="http://.../service" binding="basicHttpBinding"
  bindingConfiguration="你的绑定配置名" contract="服务引用生成的接口名"
  behaviorConfiguration="CustomClientBehavior">
  <identity>
    <dns value="nameB" />
  </identity>
</endpoint>

4. 客户端证书配置简化

不需要同时给ChannelFactory和ClientCredentials赋值,仅保留一处即可,推荐添加存储标识参数避免权限问题:

var cert = new X509Certificate2(
    Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "cert.p12"), 
    "Pass",
    X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.PersistKeySet
);
client.ClientCredentials.ClientCertificate.Certificate = cert;
// 调试阶段可保留以下配置,生产环境必须替换为服务端正式公钥证书
client.ClientCredentials.ServiceCertificate.DefaultCertificate = cert;

注意:同一份证书同时用作客户端和服务端证书仅适合自签名测试场景,生产环境必须替换为服务端发放的独立公钥证书。

内容的提问来源于stack exchange,提问作者ITMemberAHE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:39:03