如何确定哪个父配置文件正在锁定web.config设置?

时间:2011-03-15 20:27:50

标签: asp.net web-config iis-7.5

当我在IIS中打开我的ASP.NET站点并尝试打开.NET Trust Levels时,我收到一条错误消息:


.NET信任级别 执行此操作时出错。

详细信息:

文件名:\?\ C:\ inetpub \ wwwroot \ myapp \ web.config

行号:445

错误:此配置部分不能在此路径中使用。当该部分被锁定在父级别时会发生这种情况。锁定是默认情况下(overrideModeDefault =“Deny”),或由locationMode =“Deny”或遗留allowOverride =“false”的位置标记显式设置。


我检查了几个地方,但我没有找到任何看起来会锁定该设置的东西。是否有系统的方法来确定设置被锁定的位置?

我正在使用IIS 7.5和.NET 3.5 sp1。

2 个答案:

答案 0 :(得分:4)

我还没弄清楚如何确定锁定任何给定设置的确切文件,但如果您选择IIS中的最顶层节点(它应该是您的机器名称),然后打开功能委派,状态栏将会读'配置:'localhost'根web.config'或类似的东西。

从这里,您可以修改在子级别锁定的设置。

Feature Delegation in IIS

答案 1 :(得分:0)

IIS和ASP.NET都支持锁定特定的配置节。典型的场景是嵌套的配置文件 - 例如,您可能在子目录中有一个配置文件,从Web站点级配置文件覆盖某些配置设置(在子级别)。因此在这种情况下,父级可以决定允许覆盖配置文件中的哪些部分。我相信这个概念自2.0版以来就存在于ASP.NET中,而xml配置从IIS 7开始出现,它也支持类似的情况。

请参阅this article以了解ASP.NET中的锁定配置部分,并了解IIS中的this article。请注意,配置文件层次结构从机器配置和根级别Web配置开始 - 所以在不太可能的情况下,您的Web配置可能会尝试覆盖这些文件中允许的部分。