Loading
0

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

技术小学生微信公众号
腾讯云服务器大促销。
华为服务器

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>


 
技术小学生微信公众号
华为服务器
腾讯云服务器大促销。

声明:站长码字很辛苦啊,转载时请保留本声明及附带文章链接:https://blog.tag.gg/showinfo-8-35849-0.html
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
上一篇:IIS7/web.config中详解 $_SERVER["QUERY_STRING"]
下一篇:iis 6、7、8或更高版本,解决 nginx、f5 负载均衡后 wwwlogs 日志中不能记录 X-Forwarded-For 真实ip 问题