防止IIS将设置应用于子目录

分享于 

3分钟阅读

电脑

 

问题:

我有一个网站需要使用默认的文档为应用程序的root,但必须不在子目录中。 我使用"目录浏览"功能,但我只希望它能在子目录中工作。

下面是我的web.config的一个 Fragment:


 <system.webServer>


 <defaultDocument enabled="true">


 <files>


 <clear/>


 <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt"/>


 </files>


 </defaultDocument>


 <directoryBrowse enabled="true"/>



我试图向defaultDocument元素应用英镑 ,但这不能正常工作,实际上它使应用程序失效。 所以我希望defaultDocument只适用于 root,并且我希望将directoryBrowse应用到所有子目录。

在每个目录中都可以有 Web.Config 文件,并对defaultDocument应用明确的格式,但是我不能将 Web.Config 文件放在这些目录中,比如。 在这里,英镑不能在这里工作,这只会防止在子目录中对 Web.Config 文件的处理

在 Web.Config 中是否有配置将一个设置应用到该 node 只有 ?


回答 1:

解决方案是使用位置标记:

位置标记用于指定路径特定配置,作为在映射到虚拟路径的文件夹中的Web.Config 文件的替代项。 路径的位置标记是在配置层次结构中的父级设置的,被认为是在父级别上。

请参见上面的链接中的示例。


回答 2:

根据harrymc的回答,我可以让这个配置工作:


<location path="." inheritInChildApplications="false">


 <system.webServer>


 <defaultDocument enabled="true">


 <files>


 <clear/>


 <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt"/>


 </files>


 </defaultDocument>


 </system.webServer>


</location>


<system.webServer>


 <!--<defaultDocument enabled="true">


 <files>


 <clear/>


 <add value="1f200f74-07e5-4681-a275-e9cbc9f1b794.txt"/>


 </files>


 </defaultDocument>-->


 <directoryBrowse enabled="true"/>


...



还需要使用英镑location元素中英镑的inheritInChildApplications属性。 我已经把原始的"defaultDocument"元素留下来了,但是注释为我原始尝试的占位符。



SET  PRE  Setting  IIS  Apply  Subdirectories  
相关文章