2010-04-20 21 views
2

塞納里奧:如何從主站點上IIS7隔離子程序

我在Win Server 2008的網絡版上運行IIS7

我在網站的途徑(一個MVC應用程序主要的應用程序)

網站HOST是domain.com

我創建了一個虛擬應用程序/ testapp用了ASP.Net應用程序(子應用程序)

問題:

,當我瀏覽到http://domain.com主要的應用程序工作正常,但是當我瀏覽到http://domain.com/testapp子應用程序似乎運行,但處理的主要應用程序的web.config。

我遇到的一些錯誤缺少只有主應用程序需要的dll - 這可以通過將dll複製到子應用程序bin文件夾中解決,但不是理想的解決方案。

問:

我不認爲這是一個MVC/ASP.Net的問題,而是一個ISS7之一。如何配置IIS7以便這兩個應用程序不會互相干擾?

回答

2

由於web.config文件的繼承,此問題是由設計引起的。你有一對夫婦的解決方案:

  1. 移動網站內容在網站的根成並排與其他應用坐在一邊,並刪除儘可能父的web.config的應用子文件夾。
  2. 所有元素複製父web.config中需要孩子的web.config和使用location元素,以阻止繼承的孩子:
< location path="." inheritInChildApplications="false" > 
    <system.web> 
    ... 
    </ system.web > 
</ location > 
+0

選項#2似乎不工作,因爲我已經添加它,但父級web.config仍在處理中。 – 2010-04-21 12:35:49

+0

選項#1對我來說不好,因爲這意味着我的網站可以在mydomain.com上訪問,但只能在mydomain/com/app上訪問。 – 2012-08-23 10:49:39

+0

@DamienMcGivern - 由於繼承,父web.config將總是被處理。使選項#2工作的唯一方法是緩解父級web.config中的任何衝突標記。 – Thomas 2012-08-23 19:14:17

0

我有類似的當我在IIS7上運行的ASP MVC 4應用程序中添加自定義模塊時出現問題。 我已經找到了解決方案通過簡單地添加或者刪除模塊像這樣:

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <modules runAllManagedModulesForAllRequests="true"> 
     <remove name="GlobalizationModule"/> 
     <add name="GlobalizationModule" type="GlobalizationHttpModule, MyWebSite"/> 
    </modules> 
    </system.webServer> 

正是這個問題具體的解決辦法,希望它幫助。

伊多。

相關問題