2012-11-08 59 views
4

這個問題似乎已經被問了不少,但沒有真正解決這個問題對我來說。我有一個帶有區域的ASP.NET MVC4應用程序。在這個區域內,我有一個帶有重寫appsettings的web.config。嘗試在區域內的控制器中讀取這些設置時,似乎不會收到這些設置。的web.config中子目錄MVC 4

-MyApp 
    -Areas 
     -MyArea 
      -Controllers 
       -MyController 
      -Web.config 
    -Web.config 

MyApp\Web.config我:

<appSettings> 
    <add key="DefaultDisplayMode" value="Configuration" /> 
</appSettings> 

MyApp\Areas\MyArea\Web.config我:

<appSettings> 
    <add key="DefaultDisplayMode" value="Review" /> 
    <add key="SubSetting" value="Testing" /> 
</appSettings> 

MyController如果我查詢的應用程序設置,我看到:

DefaultDisplayMode: Configuration 

我希望看到:

DefaultDisplayMode: Review 
SubSetting: Testing 

我已經試過兩個:

-MyApp 
    -Areas 
     -MyArea 
      -Controllers 
       -MyController 
       -Web.config 
      -Web.config 
    -Web.config 

System.Configuration.ConfigurationManager.AppSettings["..."] 
System.Web.Configuration.WebConfigurationManager.AppSettings["..."] 

我甚至用以下(在上面)結構,沒有運氣嘗試有誰知道爲什麼我的子目錄appSettings不工作?

+0

出於好奇,是否在子目錄的'appSettings'部分中添加''解決了問題? – Ameen

回答

2

IIS將加載基於URL的web.config文件,而不是基於你的路由請求執行的代碼。

您可以創建一個模擬所需路線並在其中添加配置文件的空文件夾結構。如果這不起作用,則可以在主配置文件中使用<location>標籤 - 但位置標籤中的路徑也必須與URL匹配,而不是代碼。