gpt4 book ai didi

.net - 为什么同一台机器上的控制台应用程序和 IIS 网站的 ServicePointManager.SecurityProtocol 不同?

转载 作者:行者123 更新时间:2023-12-01 11:23:09 27 4
gpt4 key购买 nike

我正在尝试将一组项目更新到 .NET 4.6.1 以获得 TLS 1.2 支持。该解决方案包含类库、控制台应用程序、WebForms 网站和 MVC 网站的组合。

我已经将每个项目和网站更改为以 .NET 4.6.1 为目标,并重新编译所有内容。

现在,如果我在其中一个控制台应用程序中检查 ServicePointManager.SecurityProtocol 的默认值,则会得到以下信息:

Tls, Tls11, Tls12

但是,如果我在 IIS 下运行的 WebForms 网站之一中检查 ServicePointManager.SecurityProtocol 的默认值,则会得到以下信息:

Ssl3, Tls

因此,在比较 IIS 下的控制台应用程序和 WebForms 网站时,我可以在同一台机器上看到 ServicePointManager.SecurityProtocol 的不同值。

我可以确认 WebForms 网站在“system.web”下的 Web.config 中具有以下内容:

<compilation debug="true" targetFramework="4.6.1">

但是 IIS 似乎忽略了“targetFramework”属性。

我需要在 IIS 中做些什么才能让它按预期工作吗?

更新:

看起来 IIS 实际上遵循“targetFramework”属性,但与控制台应用程序相比,ServicePointManager.SecurityProtocol 在 IIS 下仍然返回不同的默认值。

最佳答案

好的 - 我解决了。

要更改网站的目标框架,请右键单击它,单击“属性页”,然后在“构建”页面上更改“目标框架”。

如果这样做,那么将更改“system.web”节点下“compilation”节点上的“targetFramework”属性:

<compilation targetFramework="4.6.1" />

但这还不够——您还需要更改“system.web”节点下的“httpRuntime”节点上的“targetFramework”属性:

<httpRuntime targetFramework="4.6.1" />

现在,IIS 下的网站和控制台应用程序都针对 ServicePointManager.SecurityProtocol 报告相同的内容。

关于.net - 为什么同一台机器上的控制台应用程序和 IIS 网站的 ServicePointManager.SecurityProtocol 不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39988540/

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