2010-03-31 23 views
5

我基本上試圖做與this question, 一樣的事情在一個文件夾中創建一個新應用程序,以便可以按如下方式訪問它。在IIS/ASP.Net中的.NET 1.1應用程序中創建.NET 3.0子應用程序

* http://www.domain.com/ < Main App 
* http://www.domain.com/newapp < New App 

的問題是,NEWAPP是閱讀從主應用程序,這是造成錯誤的web.config,因爲它不具有所有相同的dll等
對於新的應用程序,在IIS中,起點點設置在/ newapp,所以我不知道它爲什麼從/根本讀取web.config。它被設置爲它自己的應用程序。

我在XP Pro的IIS6上測試這個,所以不知道這是否有所作爲。 主應用程序是dotnet 1.1,新應用程序是3.0。

編輯: 添加「inheritInChildApplications到<location> 1.1不工作,你會得到一個錯誤:

Parser Error Message: Unrecognized attribute 'inheritInChildApplications' 

回答

4

這是由設計。 Web.config從根目錄讀取到有問題的應用程序文件夾。除非您的應用程序對其進行更改,否則根目錄中的所有更改都會應用於您的應用程序閱讀MSDN link以更好地瞭解Web.config層次結構&繼承。

爲了讓您的應用程序忽略根目錄中的設置,您需要將位置元素應用於路徑的inheritInChildApplications屬性設置爲false。

喜歡的東西:

<location path="." inheritInChildApplications="false"> 
<settings.....> 
</location 

例如,如果你在根web.config一款專用於根程序只,然後環繞該節中的位置元素。使用「。」的路徑。以表明您希望此應用程序文件夾下的路徑中的所有項目不會繼承此部分。

+0

我加入這個局面在根目錄下,但是因爲這是一個1.1應用程序,它不能識別它:當試圖在根目錄中查看頁面時出現此錯誤:解析器錯誤消息:無法識別的屬性'inheritInChildApplications' – Karen 2010-03-31 20:37:48

+0

哦。這將是一個問題。此元素適用於2.0及更高版本。除非你可以得到1.1到2.0,否則你可能會被卡住,因爲這是由web.config工作原理設計的。 – klabranche 2010-04-01 14:47:28

+0

我發現的唯一的事情是將刪除標籤添加到每個項目,導致問題的子web.config。例如:。但是,這使得子應用程序web.config依賴於父項,因此可能不是最佳選項。 – Karen 2010-04-01 15:13:57

0

如前所述 - inheritInChildApplications在.net 1.1中不起作用。

我一直在這方面做了大量的研究,我最初在這裏尋找解決方案。這個問題沒有說清楚這是一個1.1目標問題。

如果你有問題,你的應用程序是2.0或以上,然後看看這個文章在inheritInChildApplications大量的詳細信息屬性:

+0

對不起 - 我在主題中增加了更多細節,使其更加清晰。在原始發佈時,我沒有意識到這是一個1.1問題。 – Karen 2010-04-10 13:50:29

相關問題