C# HttpClient处理程序无法识别X509证书的凭据
我正在尝试部署自定义IoTEdge模块(来自Windows容器),该模块创建新的HttpClientHandler(),并向其中添加X509证书(pfx文件)。我使用的代码是: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)){} 当我在本地测试它时,一切正常,但当我部署
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上问了同样的问题供参考