2009-11-02 4 views
2

다른 ASP.NET 응용 프로그램 (가상 응용 프로그램)에 가상 디렉터리가 설정된 ASP.NET 응용 프로그램 (루트 응용 프로그램)이 있습니다. 가상 응용 프로그램을 루트 응용 프로그램의 web.config 파일에서 값을 읽게하려면 어떻게합니까? WebConfigurationManager.OpenWebConfiguration() 클래스를 살펴 보았지만 루트에서 한 수준 위로 올라가는 방법을 확신 할 수 없습니다. 예를 들어, ~/web.config로 이동하여 가상 응용 프로그램의 web.config 파일을 가져 오라고 말했지만 루트 응용 프로그램의 파일 구조에 대해 한 단계 더 올라야합니다. 이것도 정확한 접근 방법입니까?가상 디렉터리의 web.config 파일 읽기

도움을 주시면 대단히 감사하겠습니다.

string configFile = new FileInfo(Server.MapPath("/Web.config")).Directory.Parent.FullName + "\\Web.config"; 

ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap(); 

fileMap.ExeConfigFilename = configFile; 

Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

Response.Write(config.AppSettings.Settings["Test"].Value); 

답변

-1

HectorMac의 제안을 다시 시도했지만 여전히 작동하지 않습니다. 결과적으로 web.config 파일에 내 값을 저장하는 대안을 찾으려고합니다.

2

당신처럼, ConfigurationManager가 함께 ExeConfigurationFileMap 클래스를 사용할 수 있습니다. 지원되는 유일한 경로가됩니다 (즉, IIS 버전에서 계속 작동합니다).

  • appcmd.exe의 출력을 구문 분석 :

    그렇지 않으면 당신이 솔루션을 해킹 할 수 있습니다 (이 두 프로세스에 대한 일반적인 권리보다 더 필요합니다)

    일예 여기 :

    > C:\Windows\system32\inetsrv\appcmd.exe list vdir 
    VDIR "Default Web Site/" (physicalPath:E:\Dev\weblocal\XYZ) 
    VDIR "Default Web Site/DevRoot/TestWebClient" (physicalPath:E:\Dev\Tests\ClientSideWeb) 
    VDIR "Default Web Site/Home" (physicalPath:E:\Data\Homepages) 
    
  • C:\Windows\System32\inetsrv\config에서 직접 구성을 참조하십시오.

1

IIS가 (MSDN 및/또는 TechNet의 설명되어 있습니다) 구성 데이터에 프로그래밍 방식으로 액세스를 가지고 :

0

원하는 동작이 실제로 기본 동작이라는 것을 알 것입니다.

캐스케이드 다운. 값을 찾을 수없는 경우 앱은 다음 계층 형 web.config를 검색합니다.

이렇게하면 대부분의 경우 AppSettings 등을 통해 검색 할 수 있습니다.

다양한 구성 API 액세스 방법과 달리 파일에 대한 액세스를 직접해야하는 경우 어떻게 될지 잘 모르겠습니다.

여러 가상 응용 프로그램이 구성된 IIS7을 사용하여 지금과 같은 설정이 있습니다.

+0

흥미 롭습니다. 내 가상 디렉터리 응용 프로그램과 내 루트 디렉터리 응용 프로그램에서 동일한 구성 값을 설정했습니다. 가상 디렉터리 응용 프로그램에서 값을 제거하면 루트 디렉터리 응용 프로그램에서 읽을 것으로 예상했지만 대신 오류가 발생했습니다. –

+0

특별한 구성없이 호스팅 앱에서 AppSettings 값을 찾는 앱 세트가 있습니다. 모든 가상 응용 프로그램은 IIS7에서 구성됩니다. 값은 web.config 호스팅에만 존재합니다. – HectorMac

+0

흥미 롭습니다. 내가 뭘 잘못하고 있는지 궁금해. 가상 응용 프로그램이 IIS의 응용 프로그램으로 설정되어 있습니까? –

관련 문제