.NET 标准 2.0 的 WCF Web 服务参考
WCF Web Service Reference with .NET standard 2.0
我正在 .NET Standard 2.0 项目中生成 WCF Web 服务参考 reference.cs
,然后从 .NET 4.7.1 项目中使用它,但我得到 "Could not establish secure channel for SSL/TLS with authority"
如果我使用 Add Service Reference
除了 visual studio 2015 生成它。我得到一个类似的 reference.cs class 并且如果我将它复制到我的 .NET 标准 2.0 项目中这可行,但我丢失了 WCF Web 服务的异步调用实现。有什么方法可以使它起作用吗?
确保配置绑定。它们位于 .net Framework 项目的 app.config 中,但应封装在 .NET Standard/.NET Core 中的 BasicHttpBinding
中。
这样您就可以根据需要指定安全设置:
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
来自 Nuget 包 System.ServiceModel.Http:
namespace System.ServiceModel
{
public class BasicHttpBinding : HttpBindingBase
{
public BasicHttpBinding();
public BasicHttpBinding(BasicHttpSecurityMode securityMode);
public BasicHttpSecurity Security { get; set; }
public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingParameterCollection parameters);
public override BindingElementCollection CreateBindingElements();
}
}
我正在 .NET Standard 2.0 项目中生成 WCF Web 服务参考 reference.cs
,然后从 .NET 4.7.1 项目中使用它,但我得到 "Could not establish secure channel for SSL/TLS with authority"
如果我使用 Add Service Reference
除了 visual studio 2015 生成它。我得到一个类似的 reference.cs class 并且如果我将它复制到我的 .NET 标准 2.0 项目中这可行,但我丢失了 WCF Web 服务的异步调用实现。有什么方法可以使它起作用吗?
确保配置绑定。它们位于 .net Framework 项目的 app.config 中,但应封装在 .NET Standard/.NET Core 中的 BasicHttpBinding
中。
这样您就可以根据需要指定安全设置:
binding.Security.Mode = BasicHttpSecurityMode.Transport;
binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;
binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
来自 Nuget 包 System.ServiceModel.Http:
namespace System.ServiceModel
{
public class BasicHttpBinding : HttpBindingBase
{
public BasicHttpBinding();
public BasicHttpBinding(BasicHttpSecurityMode securityMode);
public BasicHttpSecurity Security { get; set; }
public override IChannelFactory<TChannel> BuildChannelFactory<TChannel>(BindingParameterCollection parameters);
public override BindingElementCollection CreateBindingElements();
}
}