webconfig 在根目錄解除子目錄的繼承

1.在根目錄解除子目錄的繼承

複製代碼

1 <configuration>
2   <!--...其他配置...-->
3   <location path="." inheritInChildApplications="false">
4     <system.web>
5 
6     </system.web>
7   </location>
8   <!--...其他配置...-->
9 </configuration>

複製代碼

這裏的inheritInChildApplications就是接觸子目錄webconfig的繼承,將不需要子目錄繼承的節點放在這個節點裏面就ok了

這種方法的優點是很簡單,但是不夠靈活,同時面對較複雜的Web.config配置,仍可能會報錯。比如根目錄和子目錄有着不同的system.webServer配置,按照這個方法在根目錄的system.webServer外面加上了location限制,不幸的是,IIS7下會出現500錯誤。

2.在子目錄對衝突的節點處理

根目錄節點

1 <connectionStrings>
2     <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
3   </connectionStrings>

子目錄節點

1 <connectionStrings>
2     <clear/>
3     <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
4   </connectionStrings>

在衝突的節點前先clear,清除之前的配置,然後再加載下面的配置就可以了,除了clear 還有remove也可以

 <connectionStrings>
    <remove name="DBConnectionString"/>
    <add name="DBConnectionString" connectionString="Data Source=.;Initial Catalog=test;User ID=sa;Password=sa123" providerName="System.Data.SqlClient"/>
  </connectionStrings>

這種配置方法可以用在所有的節點上,使用起來也比較靈活,個人推薦用第二種方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章