gpt4 book ai didi

c# - 为什么在 WCF 应用程序的 Web.config 文件中添加 httpRuntime targetFramework 可以解决与 TLS 相关的连接问题?

转载 作者:太空狗 更新时间:2023-10-30 01:29:20 24 4
gpt4 key购买 nike

我们有一些 ASP.NET 和 WCF 应用程序在发布时不断迁移到最新的 .net 框架版本。在我们到达 .NET Framework 4.6.2 之前,此迁移工作正常,从那时起我们开始看到如下所示的 TLS 连接错误。当我添加 <httpRuntime targetFramework="4.6.2" /><system.web> 下在 Web.config 文件中,错误消失了。据我了解,此设置强制应用程序在 .NET Framework 4.6.2 下运行(如果没有这个,我相信应用程序在 .NET Framework 4.0 下运行),这导致它使用底层操作系统的默认协议(protocol)来保护连接。如果我遗漏了什么,请纠正我的理解。

System.AggregateException:出现一个或多个错误。 ---> System.Net.Http.HttpRequestException: 发送请求时出错。 ---> System.Net.WebException:基础连接已关闭:发送时发生意外错误。 ---> System.IO.IOException: 无法从传输连接读取数据: 现有连接被远程主机强行关闭。 ---> System.Net.Sockets.SocketException: 现有连接被远程主机强行关闭 在 System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) 在 System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) --- 内部异常堆栈跟踪结束 --- 在 System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) 在 System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) --- 内部异常堆栈跟踪结束 ---

最佳答案

看看这个:https://blogs.perficient.com/2016/04/28/tsl-1-2-and-net-support .TLS 1.2 是 .NET 4.6 及更高版本的默认设置,支持但不是 4.5 的默认设置,4.0 及更低版本的支持不佳。

也许您的某个应用程序更新、IIS 或操作系统配置更改已禁用 TLS 版本 <1.2,并且客户端应用程序无法连接。

至于设置<httpRuntime targetFramework="4.6.2" /> ,我们发现了同样的事情。更改项目文件中的目标框架和 targetFramework compilation 中的值元素还不够。它仍然保留 < .NET 4.6 的 TLS 行为。事实上,在更改目标框架时,Visual Studio 添加了 httpRuntime注释掉的 block 中的 web.config 元素。

(此处推荐的答案也很有帮助:What do the TargetFramework settings mean in web.config in ASP .NET MVC?)

关于c# - 为什么在 WCF 应用程序的 Web.config 文件中添加 httpRuntime targetFramework 可以解决与 TLS 相关的连接问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52393769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com