c# - WCF 错误:“客户端和服务器之间的安全绑定不匹配”
问题描述
所以我有两个项目调用相同的第 3 方 SOAP 服务。两个项目(项目 A 和项目 B)具有相同的配置,并且都运行 .NET 4.7.2。项目 B 运行良好,但项目 A 抛出以下异常:
向https://XXXXXXXXXX发出 HTTP 请求时出错。这可能是由于在 HTTPS 情况下未使用 HTTP.SYS 正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配造成的。
我在项目 A 中设置了安全协议以匹配项目 B(Ssl3 && Tls)。我也尝试过使用 HTTP 而不是 HTTPS。
项目 A - Web Api 项目 .NET 4.7.2
项目 B - 控制台应用程序 .NET 4.7.2
任何建议,将不胜感激。
解决方案
添加代理服务器设置(不知道我们有一个)解决了我的问题。
请参见下面的示例代码:
private string SendDataExample()
{
using (var client = new ServiceClient())
{
SetProxy(client.Endpoint.Binding as BasicHttpBinding);
}
}
private void SetProxy(BasicHttpBinding binding)
{
binding.ProxyAddress = new Uri($"http://localHost:8080");
binding.BypassProxyOnLocal = false;
binding.UseDefaultWebProxy = false;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.Ntlm;
}
推荐阅读
- android - 试图理解 onTouch 方法
- python - BeautifulSoup - 在标签后获取文本
- scheme - 等待几秒钟后调用Scheme中的过程?
- vue.js - 使用 Auth Flow With PKCE、MSAL v2、Vue.js 和 Azure Functions 获取 Azure B2C 用户权限(授权用户)
- button - 使用存储在 Google 表格中的 URL 的 Google 站点导航按钮
- r - R - 如何在组内找到变量的对组合
- node.js - Mongoose,MATCH 运算符不返回结果
- arrays - 为什么由 document.getElementById('table') 定义的变量 tbl 返回 null?
- php - 如何防止后退按钮进入 laravel 中的默认身份验证主页?
- apache-spark - delta Lake - 在 pyspark 中插入 sql 失败并出现 java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.expressions.Alias