2011-12-16 22 views
7

我們有一個大型的內容管理系統配置爲IIS中的主站點。我們也有一些獨立的應用程序在IIS 7.5下配置爲應用程序。我們遇到的問題是,子應用程序正在從父應用程序繼承web.config文件,即使它們是完全獨立的應用程序並且沒有配置設置旁邊的共享。理想情況下,我們想停止子應用程序繼承web.config文件。那可能嗎?從子應用程序卸載web.config文件的一部分

如果沒有,我們想告訴孩子應用程序無法繼承主web.config文件的部分。我們已經嘗試編輯子web.config文件並向配置文件添加指令,但似乎沒有工作。

據我所知,我們可以通過修改父web.config文件中指令添加到有效地限制了繼承;但是我們不願意這樣做,因爲我們不確定這將如何影響CMS。有問題的web.config文件也大約有1000行,我們不確定我們需要做多少更改。當然,我們可以推進這個解決方案並進行徹底的測試,但是我寧願找到一個不需要修改父應用程序的解決方案。

我們也嘗試更新孩子web.config文件中手動刪除父web.config中的某些元素,我們已經有好有壞的結果。我們可以卸載HTTP處理程序和類似的東西,但我們似乎無法卸載任何對App_Code文件夾的引用。

總之,是否有可能讓子應用程序不繼承web.config文件的任何部分?如果沒有,是否可以覆蓋或以其他方式強制孩子忽略父級web.config文件中的設置?

感謝

戴夫

+0

你可以提供關於你對App_Code文件夾的引用的更多信息嗎?它在哪一部分?最好,如果你可以在你的問題中包含該片段,以便我們可以看到。 – 2011-12-17 21:59:25

回答

0

添加<clear/>在部分的開始擺脫繼承的設置。

+0

某些消息被剝離了我的原始帖子。本來應該說「我們已經嘗試編輯子web.config文件並在配置文件中添加''指令,但這似乎不起作用。」和「我明白,我們可以修改父級web.config文件,以在'`指令中添加有效限制繼承的指令;但是...」 – 2011-12-16 15:15:58

10

除了使用<clear/>或覆蓋子級web.config中的設置外,還可以在父級web.config中使用inheritInChildApplications設置。

例子:

<location path="." inheritInChildApplications="false"> 
    <system.web>  
    <!-- ... --> 
    </system.web> 
</location> 

你可以用整個<system.web>或只是圍繞特定部分周圍的位置。

更多信息有些鏈接:

1

這是一個一個解決方法,但我們爲polygot應用程序做的是反向代理無法生活在父母的web.config下的任何東西。比在大多數情況下打擊它更容易。

現在,這個內部網應用聽起來像它可能會使用Windows驗證,如果是的話,將無法正常工作,你不能反向代理Windows身份驗證。