我遇到了以下异常:
System.IO.IOException:解密操作失败,请参见内部异常。
System.ComponentModel.Win32Exception (0x80090326):收到的消息意外或格式错误。
--- 内部异常堆栈跟踪结束 ---
我使用一个简单的发布请求,使用 TLS 1.3 和绑定到 Windows Server 2022 上 IIS 的证书来发送消息。当我访问一个需要证书验证的特定网站时,就会发生这种情况。
对于如何解决此问题有什么建议吗?这是否与
HttpClient
未使用正确的证书有关,如果是,那么我可以采取哪些步骤来运行一些验证?
谢谢。
这是我使用的代码:
var client = _httpClientFactory.CreateClient();
HttpContent content = new StringContent(message, Encoding.UTF8, "application/soap+xml");
using (var response = await client.PostAsync("host url", content))
{
if (response.IsSuccessStatusCode)
{
string result = await response.Content.ReadAsStringAsync();
//Return result
return (result);
}
else
{
return ( string.Empty);
}
}
我明白了问题所在。您的评论之一表明 httpclient 可能使用不同的证书,情况就是如此。显然 HttpClient 使用自己的证书来发送 post 请求。我必须更改代码以将手动证书添加到 HttpClient 处理程序,从而使工作正常进行。我希望微软对此进行更多记录。不管怎样,感谢@Charlieface 给我一个关于寻找什么的提示!我还在 将客户端证书添加到 .NET Core HttpClient
中找到了有用的帮助