能否在web.config中指定IIS版本,以避免例如“不允许使用useKernalMode属性”?

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

下面显示了web.config文件中我们在IIS中运行的应用程序的一部分。我已将其包含为图像,以便在useKernelMode下包含绿线,并将鼠标悬停在其上时显示错误消息。

注:如您所见,这也适用于UseAppPoolCredentialsextendedProtection。在此示例中,我只是选择了useKernelMode

enter image description here

这里的配置应该是正确的-它是由一个大概知道他在做什么的管理员设置的,它似乎工作正常。也有documentation for Windows AuthenticationuseKernelMode标识为有效属性。

为什么将其标记为无效属性? IIS的不同版本显然支持配置文件中的不同元素和属性-可能是Visual Studio以某种方式将此配置文件与web.confi文件的较旧标准相关联,而该属性实际上是无效的吗?如果是这样,我可以通过某种方式指定应根据特定版本的IIS验证此特定配置,例如IIS 7.5、8.5或10?

毕竟,我would希望以这种方式标记web.config中的任何实际错误,但我想避免(大概)这样的误报。

c# .net web-services iis web-config
1个回答
0
投票

恐怕与IIS版本无关。 IIS将其锁定并设置为只读。

enter image description here

您可以看到,该部分仅由applicationhost.config级别允许。

enter image description here

如果您在Visual Studio中访问此文件,则会收到enter image description here

如果要解决此问题,请设置应用程序host.config。

<section name="windowsAuthentication" overrideModeDefault="Deny" />

to

<section name="windowsAuthentication" overrideModeDefault="Allow" />

此后,VS仍报告无效属性,但IIS Express和IIS将允许在web.config中使用这些属性

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.