下面显示了web.config文件中我们在IIS中运行的应用程序的一部分。我已将其包含为图像,以便在useKernelMode
下包含绿线,并将鼠标悬停在其上时显示错误消息。
(注:如您所见,这也适用于UseAppPoolCredentials
和extendedProtection
。在此示例中,我只是选择了useKernelMode
)
这里的配置应该是正确的-它是由一个大概知道他在做什么的管理员设置的,它似乎工作正常。也有documentation for Windows Authentication将useKernelMode
标识为有效属性。
为什么将其标记为无效属性? IIS的不同版本显然支持配置文件中的不同元素和属性-可能是Visual Studio以某种方式将此配置文件与web.confi文件的较旧标准相关联,而该属性实际上是无效的吗?如果是这样,我可以通过某种方式指定应根据特定版本的IIS验证此特定配置,例如IIS 7.5、8.5或10?
毕竟,我would希望以这种方式标记web.config中的任何实际错误,但我想避免(大概)这样的误报。
恐怕与IIS版本无关。 IIS将其锁定并设置为只读。
您可以看到,该部分仅由applicationhost.config级别允许。
如果要解决此问题,请设置应用程序host.config。
<section name="windowsAuthentication" overrideModeDefault="Deny" />
to
<section name="windowsAuthentication" overrideModeDefault="Allow" />
此后,VS仍报告无效属性,但IIS Express和IIS将允许在web.config中使用这些属性