2012-11-08 3 views
4

이 질문은 많은 질문을 받았지만 아무도 실제로 문제를 해결하지 못하는 것 같습니다. 영역이있는 ASP.NET MVC4 응용 프로그램이 있습니다. 이 영역 안에는 재정의 된 appsettings가있는 web.config가 있습니다. 이러한 설정은 해당 지역의 컨트롤러에서 해당 설정을 읽으려고 시도 할 때 선택되지 않습니다. MyApp\Web.config에서mvc의 하위 디렉토리에있는 web.config 4

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

내가 가진 : MyApp\Areas\MyArea\Web.config에서

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

내가 가진 : MyController에서

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

내가 응용 프로그램 설정을 조회 할 경우, 나는 참조 :

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> 태그를 사용할 수 있지만 location 태그의 경로도 코드가 아닌 URL과 일치해야합니다.

관련 문제