Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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# HttpClient处理程序无法识别X509证书的凭据_C#_Docker_X509certificate_Azure Iot Edge - Fatal编程技术网

C# HttpClient处理程序无法识别X509证书的凭据

C# HttpClient处理程序无法识别X509证书的凭据,c#,docker,x509certificate,azure-iot-edge,C#,Docker,X509certificate,Azure Iot Edge,我正在尝试部署自定义IoTEdge模块(来自Windows容器),该模块创建新的HttpClientHandler(),并向其中添加X509证书(pfx文件)。我使用的代码是: httpClientHandler.ClientCertificates.Add(cert); 然后,它通过创建httpclient的新实例来查询API using (var httpClient = new HttpClient(httpClientHandler)){} 当我在本地测试它时,一切正常,但当我部署

我正在尝试部署自定义IoTEdge模块(来自Windows容器),该模块创建新的HttpClientHandler(),并向其中添加X509证书(pfx文件)。我使用的代码是:

 httpClientHandler.ClientCertificates.Add(cert);
然后,它通过创建httpclient的新实例来查询API

using (var httpClient = new HttpClient(httpClientHandler)){}
当我在本地测试它时,一切正常,但当我部署此IoTEdge模块时,会出现异常。也就是说,当它尝试创建HttpClient时,会引发以下异常:

threw Exception The credentials supplied to the package were not recognized : stack trace    at System.Net.SSPIWrapper.AcquireCredentialsHandle(SSPIInterface secModule, String package, CredentialUse intent, SCHANNEL_CRED scc)
   at System.Net.Security.SslStreamPal.AcquireCredentialsHandle(CredentialUse credUsage, SCHANNEL_CRED secureCredential)...

注意:我已授予证书的完全权限,并且证书具有私钥。

值得一提的是,我尝试部署一个使用httpClientHander的边缘模块,但无法使其正常工作。我放弃了,而是用JavaScript编写了它。在MSDN上问了同样的问题供参考