Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
要求使用WCF的SSL会导致“;客户端身份验证方案禁止HTTP请求';匿名'&引用;错误?_Wcf_Ssl_Client_Wcf Client_Anonymous - Fatal编程技术网

要求使用WCF的SSL会导致“;客户端身份验证方案禁止HTTP请求';匿名'&引用;错误?

要求使用WCF的SSL会导致“;客户端身份验证方案禁止HTTP请求';匿名'&引用;错误?,wcf,ssl,client,wcf-client,anonymous,Wcf,Ssl,Client,Wcf Client,Anonymous,我们有一个托管在IIS中的WCF服务,客户端dll正在尝试访问该服务。该服务在IIS中绑定为使用HTTPS,并设置为忽略客户端证书,这很好,但需要SSL会导致问题 我真的不明白的是,调用服务的一个方法工作得很好,但调用另一个方法不起作用,我得到以下错误:“HTTP请求被客户端身份验证方案‘匿名’禁止。System.Net.WebException:远程服务器返回错误:(403)禁止。” 这可能是什么原因造成的?我是WCF的新手,所以如果我遗漏了什么或者需要更多的信息,请告诉我 以下是一些服务配置

我们有一个托管在IIS中的WCF服务,客户端dll正在尝试访问该服务。该服务在IIS中绑定为使用HTTPS,并设置为忽略客户端证书,这很好,但需要SSL会导致问题

我真的不明白的是,调用服务的一个方法工作得很好,但调用另一个方法不起作用,我得到以下错误:“HTTP请求被客户端身份验证方案‘匿名’禁止。System.Net.WebException:远程服务器返回错误:(403)禁止。”

这可能是什么原因造成的?我是WCF的新手,所以如果我遗漏了什么或者需要更多的信息,请告诉我

以下是一些服务配置代码:

this.Description.Behaviors.Add(new FaultConversionErrorHandler());
this.Description.Behaviors.Add(new LoggingErrorHandler());

BasicHttpBinding binding = new BasicHttpBinding();
binding.Security.Mode = BasicHttpSecurityMode.Transport;

ServiceEndpoint endpoint = this.AddServiceEndpoint(typeof(ILicenseService), binding, String.Empty);

SecurityEndpointBehavior securityEndpointBehavior = new SecurityEndpointBehavior();
endpoint.Behaviors.Add(securityEndpointBehavior);
以下是客户端引用服务的方式:

EndpointAddress a = new EndpointAddress(licenseServiceUrl);
Binding b = new BasicHttpBinding(BasicHttpSecurityMode.Transport);

LicenseServiceClient client = new LicenseServiceClient(b, a);
client.Endpoint.Behaviors.Add(new SecurityEndpointBehavior());

您可以通过更改绑定信息来解决此问题。 将TransportClientCredential Type设置为certificate,以便在IIS SSL设置中使用所需的证书

如果是Ws-Http,则有点不同。WCF WS-service主机实际上正在检查传入的客户端请求证书是否存在于受信任的人员中。 因此,远程证书应该存在于服务器的受信任人员中


或者添加CustomValidator并覆盖该行为。

我与您面临一个密切的问题()您解决了问题吗?如果是,你能帮我解决我的问题吗?