iis 在.NET 6 C#中使用HttpClient时,我在发出httppost请求时遇到解密错误

gojuced7  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(147)

我一直收到以下异常:
System.IO.IOException:解密操作失败,请参阅内部异常。
System.ComponentModel.Win32Exception(0x 80090326):收到的消息不是预期的消息或格式不正确。

  • 内部异常堆栈跟踪结束-
    我使用一个简单的发布请求,使用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);
                }
            }

字符串

nwsw7zdq

nwsw7zdq1#

我发现了问题所在。你的一条评论指出了httpclient可能使用不同的证书,这是事实。显然,HttpClient使用自己的证书来发送post请求。我不得不修改代码,将手动证书添加到HttpClient服务器,这让事情正常工作。我希望微软能更多地记录这一点。无论如何,感谢@Charlieface给我一个提示,告诉我要找什么!我还在Add client certificate to .NET Core HttpClient中找到了有用的帮助

相关问题