ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

在 IIS 中子目录(虚拟目录)设置不继承父目录(主站点) web.config 的方法

2021-01-04 14:01:06  阅读:285  来源: 互联网

标签:web 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>

转自:https://stackoverflow.com/questions/23367347/entry-has-already-been-added-two-separate-app-pools/24260655#24260655

标签:web,IIS,虚拟目录,Web,继承,配置,子目录,根目录,config
来源: https://www.cnblogs.com/xwgli/p/14229450.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有