将 HttpClient 与 .NET 6 C# 一起使用,我在发出 http post 请求时遇到解密错误

问题描述 投票:0回答:1

我遇到了以下异常:

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);
                }
            }
c# iis httpclient .net-6.0 x509
1个回答
0
投票

我明白了问题所在。您的评论之一表明 httpclient 可能使用不同的证书,情况就是如此。显然 HttpClient 使用自己的证书来发送 post 请求。我必须更改代码以将手动证书添加到 HttpClient 处理程序,从而使工作正常进行。我希望微软对此进行更多记录。不管怎样,感谢@Charlieface 给我一个关于寻找什么的提示!我还在 将客户端证书添加到 .NET Core HttpClient

中找到了有用的帮助
© www.soinside.com 2019 - 2024. All rights reserved.