Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.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
C# .Net核心WCF客户端引发WinHttpException,错误为0x2f9a_C#_Wcf_.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# .Net核心WCF客户端引发WinHttpException,错误为0x2f9a

C# .Net核心WCF客户端引发WinHttpException,错误为0x2f9a,c#,wcf,.net-core,asp.net-core-2.0,C#,Wcf,.net Core,Asp.net Core 2.0,我们有一个自动生成的WCF客户端,使用.NETCore2.0中的新WCF客户端。我们设法使它在我们的开发机器上工作,但是在我们的生产服务器中引发了此异常: System.ServiceModel.CommunicationException:发送请求时出错。-->System.Net.Http.HttpRequestException:发送请求时出错。-->System.Net.Http.WinHttpException:未知错误(0x2f9a) 这两台机器都安装了.NET Core 2.1。一

我们有一个自动生成的WCF客户端,使用.NETCore2.0中的新WCF客户端。我们设法使它在我们的开发机器上工作,但是在我们的生产服务器中引发了此异常:

System.ServiceModel.CommunicationException:发送请求时出错。-->System.Net.Http.HttpRequestException:发送请求时出错。-->System.Net.Http.WinHttpException:未知错误(0x2f9a)

这两台机器都安装了.NET Core 2.1。一台是Windows 10 PC,另一台是Windows Server 2008 R2 SP1

如您所见,异常中没有太多信息。我试图找到有关该错误代码的任何信息,但没有得到任何信息。该异常不包含其他信息。抛出的线路只不过是对服务的调用:

\u ws.可重复使用的DespendenteSasync(“”)

客户端的配置如下所示:

BasicHttpBinding basicHttpBinding = new BasicHttpBinding();
basicHttpBinding.Security.Mode = BasicHttpSecurityMode.Transport;
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Certificate;

// I've edited out the domain names
EndpointAddress endpointAddress = new EndpointAddress("address");

_ws = new ViabilidadePrefeituraWSClient(basicHttpBinding, endpointAddress);

_ws.ClientCredentials.ClientCertificate.SetCertificate(
    StoreLocation.LocalMachine,
    StoreName.My,
    X509FindType.FindBySubjectName,
    "name");

_ws.ClientCredentials.ServiceCertificate.SslCertificateAuthentication =
    new X509ServiceCertificateAuthentication()
    {
        CertificateValidationMode = X509CertificateValidationMode.PeerTrust,
        RevocationMode = X509RevocationMode.NoCheck
    };

System.Net.ServicePointManager.ServerCertificateValidationCallback +=
    (se, cert, chain, sslerror) =>
    {
        return true;
    };

好的,当我试图找出开发机器和生产机器之间的所有差异时,我记得IIS Express使用当前用户运行网站,而完整IIS默认情况下在ApplicationPoolIdentity用户上运行网站

因此,我将生产机器上的应用程序池更改为以管理员身份运行,并且它工作正常。但我无法找出为什么这样做有效