2008-09-01 150 views
17

我在默認的IIS站點的web.config文件中有以下代碼。如何防止IIS默認站點web.config文件被虛擬目錄繼承?

<httpModules> 
    <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/> 
</httpModules> 

後來,當我設置和瀏覽到一個虛擬目錄我得到這個錯誤

無法加載文件或程序集「圖表」或它的一個依賴。該系統找不到指定的文件。

虛擬目錄從默認web.config繼承模塊。

你如何阻止這種繼承?

回答

20

我找到了答案。將HttpModule部分包裹在位置標記中,並將inheritInChildApplications屬性設置爲false。

<location path="." inheritInChildApplications="false"> 
    <system.web> 
    <httpModules> 
     <add type="MDL.BexWebControls.Charts.ChartStreamHandler,Charts" name="ChartStreamHandler"/> 
    </httpModules> 
    </system.web> 
</location> 

現在任何虛擬目錄都不會繼承此位置部分中的設置。

@GateKiller這不是另一個網站,它是一個虛擬目錄,所以繼承確實發生。

@petrich我使用<remove />命中並錯過了結果。我必須記住將其添加到每個虛擬目錄中,這是一個痛苦。

+0

是的,我發現它也是一種痛苦。感謝關於inheritInChildApplications的提示。 – rpetrich 2008-09-11 20:14:11

2

以下添加到虛擬目錄的web.config文件:

<httpModules> 
    <remove name="ChartStreamHandler"/> 
</httpModules> 
-2

According to Microsoft,其他網站不繼承默認網站設置。你的意思是你正在編輯與machine.config位於同一文件夾中的默認web.config?

+0

我認爲提問者正在討論從它繼承的站點的虛擬目錄。 – Sam 2013-08-19 23:41:19