在 IIS 中子目录(虚拟目录)设置不继承父目录(主站点) web.config 的方法
转自:https://www.cnblogs.com/willingtolove/p/13398224.html
ASP.NET提供了强大的Web.config来配置网站,一般来说一个网站只有一个根目录下的Web.config文件,有时候我们希望子目录有着不同的权限或者参数设置,则可以在相应子目录增加一个Web.config配置文件,加入我们新的配置参数。这里需要注意的是,子目录web.config是继承父目录的所有设置的,因此,如果子目录放的是一个和父目录里不一样的网站,就不能共享父目录的配置了,否则很可能会冲突。
如果子目录使用独立Web.config,那如何避免与主目录的配置冲突呢?
方法一:在主目录中使用location标签(未验证)
即通过修改根目录的Web.config消除继承关系,在根目录Web.config文件的system.web或者一切不想让子目录继承的配置节点外面添加一层location如下:
<configuration> <location path="." inheritInChildApplications="false"> <system.web> </system.web> </location> </configuration>
inheritInChildApplications,即是否允许子目录继承,默认为true,我们修改为false就可以避免继承了。这种方法的优点是很简单,但是不够灵活。
方法二:在子目录中使用clear或remove屏蔽不需要配置(部分配置不支持)
不用修改根目录的Web.config文件,而是修改子目录的Web.config。假设根目录的Web.config设置了一个名为pscp的连接字符串,要在子目录使用另一个名字为pscp的连接字符串,就需要先清除已有的连接字符串(根目录继承下来的connectionString设置);
清除所有的配置,可以用clear语法,清除指定名称的配置,可以用remove语法,如下:
<configuration> <configSections> <remove name="casClientConfig"/> </configSections> <connectionStrings> <clear/> <add name="pscp" connectionString="xxx"/> </connectionStrings> <system.webServer> <staticContent> <remove fileExtension=".properties" /> <mimeMap fileExtension=".properties" mimeType="text/x-java-properties" /> </staticContent> </system.webServer> </configuration>
方法三:对程序池设置不重写配置(未验证)
如果子目录与父目录使用了不同的应用程序池,可以在 applicationHost.config 文件中(文件位置在:%WINDIR%\System32\inetsrv\Config 和 %WINDIR%\SysWOW64\inetsrv\config),找到相应子目录应用程序池的配置,添加 enableConfigurationOverride="false" 配置项,即可阻止配置的继承。示例如下:
<add name="MyAppPool" autoStart="true" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" enableConfigurationOverride="false"> <processModel identityType="NetworkService" /> </add>
输了你,赢了世界又如何...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
2018-01-04 维语相关记录