IIS Web.config 衝突、繼承問題

我們都知道IIS可以將多個網站集合在一起
像這樣
www.mysite.com
www.mysite.com/erp/
www.mysite.com/crm/

複數站台建立在同一個domain下時
web.config會自動繼承主站的設定

因此如果有重覆的設定或引用重覆的套件
IIS就會報錯誤訊息
網路上查你會看到很多人的解法是使用
 path="." inheritInChildApplications="false">
或使用 來清除上一個web.config設定
來進行不繼承上一個階層的設定
但有幾個注意事項我覺得網路上都沒有講得很清楚的
整理在這邊

1.語法 要已區段包圍web.config 而且有些區段是不能使用語法的,向下面這樣
 path="." inheritInChildApplications="false">
   
   
path="." inheritInChildApplications="false">
2.設定最上方的configuration 要指定版本同時如果你的schema使用NetConfiguration/v2.0  那你的iis使用的.net framework要4.0以上
 xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
 3. 這個區段要加在"最上層"的WEB.CONFIG 很重要~ 很多人會以為是加在有繼承問題的WEB.CONFIG上 但其實是加在父節點(或說上一層目錄)的WEB.CONFIG裡面。

更新完web.config 最好重啟IIS服務 檢查看看是否子站台可正常工作

footer See also :
https://stackoverflow.com/questions/782252/avoid-web-config-inheritance-in-child-web-application-using-inheritinchildapplic

留言

這個網誌中的熱門文章

Office 2021 離線安裝封裝與KMS啟動步驟

Ollama使用心得與模型導入教學

ARC下NSMutableDictionary 無法使用retainCount