Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.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将SSL证书添加到SOAP客户端请求_C#_.net_Soap - Fatal编程技术网

C# .NET将SSL证书添加到SOAP客户端请求

C# .NET将SSL证书添加到SOAP客户端请求,c#,.net,soap,C#,.net,Soap,使用.NET4.0框架,我试图进行服务器到服务器的HTTPS SOAP服务调用。 在客户端服务器上,我正在尝试添加本地SSL证书,以便接收呼叫的服务器能够识别我 我试图添加的证书不是来自本地计算机的存储区(即使是,问题仍然存在),而是作为本地文件放置在我的计算机上的(.cer)文件 代码运行正常,似乎添加了证书,但我的System.Net.trace.log文件不断为每个调用添加以下错误: “在LocalMachine存储区或CurrentUser存储区中都找不到证书。”并且我尝试呼叫的服务器不

使用.NET4.0框架,我试图进行服务器到服务器的HTTPS SOAP服务调用。 在客户端服务器上,我正在尝试添加本地SSL证书,以便接收呼叫的服务器能够识别我

我试图添加的证书不是来自本地计算机的存储区(即使是,问题仍然存在),而是作为本地文件放置在我的计算机上的(.cer)文件

代码运行正常,似乎添加了证书,但我的System.Net.trace.log文件不断为每个调用添加以下错误: “在LocalMachine存储区或CurrentUser存储区中都找不到证书。”并且我尝试呼叫的服务器不断告诉我,我的请求没有附加任何证书。 我得到的最后一个WebException是: “请求被中止:无法创建SSL/TLS安全通道。” 我的GetCertificate函数:

private X509Certificate2 GetCertificate()
{
    X509Certificate2 cert;
    try
    {
        cert = new X509Certificate2("MyCertificateFoder\\MyCertificate.cer");
    }
    catch (Exception ex)
    {
        throw;
    }
    return cert;
}
服务呼叫代码:

X509Certificate2 cert = GetCertificate();
ServiceClient.ClientCertificates.Add(cert);
serviceMethodResponse = ServiceClient.ServiceMethod(serviceMethodRequest);
如有任何建议,我将不胜感激


感谢

这里的主要错误是,当使用SSL进行客户端身份验证时,应该使用.pfx文件(带有客户端私钥、证书、证书链、根权限证书)

不是.cer文件

这就是错误的原因