2012-02-27 2 views
7

ASP.NET 응용 프로그램의 IIS 로그 파일 위치를 확인하려고합니다. WMI를 시도했지만 찾을 수 없습니다. 어떤 제안?프로그래밍 방식으로 ASP.NET 응용 프로그램에서 IIS 로그 파일 위치 검색

참고 : 프로그래밍 방식으로 위치를 검색 할 수 있어야합니다. 추가 사용을 위해 내 응용 프로그램 내부. 편집 : 여기에 내 코드가 :이 작동하지만 로그 실제 실제 디렉터리 위치를주지 않습니다. 그래서 이것은 기본적으로 쓸모가 없습니다. 당신이 Microsoft.Web.Administration 어셈블리를 사용할 수 IIS7에

ManagementPath p2=new ManagementPath("IIsLogModule.Name='logging/Microsoft IIS Log File Format'"); 
ManagementObject log = new ManagementObject(scope, p2, objectGet); 
log.Get(); 
logPath.Text = log["__PATH"].ToString(); 
+0

코드를 표시 하시겠습니까 ?? 우리가 마술 지팡이를 도울 수 있도록 당신이 지금까지 한 일 : D –

+0

나는 당신의 삶을 어렵게 만들려고 노력합니다. 이 파일은 사용자가 제어하고 알 수있는 것인데, 왜 그 파일에 액세스 할 수없는 일부 설치 파일을 찾았습니까? – Aristos

+0

내 질문을 편집했습니다. 그러나 나는이 코드 블록이 내가 필요한 것과 다른 것을 보여주기 때문에 그것이 당신을 도울 것이라고는 믿지 않는다. 빠른 답변 감사합니다. – Slethron

답변

5

Site 클래스는이 코드를 얻을 수있다 예를 들어 로그 파일 디렉토리 사이트에 대한 로그 파일에 대한 다양한 정보를 얻을 수 LogFile라는 속성이 있습니다 :

ServerManager manager = new ServerManager(); 
    Site mySite = manager.Sites["SiteName"]; 
    Response.Write("Log file directory : " + mySite.LogFile.Directory + "\\W3svc" + mySite.Id.ToString()); 

나는 사이트 디렉토리 접두사 하드 부분이 있지만, 당신은 ADSI (또는 WMI를) 사용할 수 그렇게 할 수 있어야 다른 더 좋은 방법

0

을 찾지 못했음을별로 좋아하지 않아 - IIS 메타베이스를 탐색하고 'L 웹 사이트 노드에 대한 ogFileDirectory 속성. 예를 들어,

var root = new DirectoryEntry(@"IIS://localhost/W3SVC"); 
var sites = root.Children; 
foreach(DirectoryEntry site in sites) { 
    var name = site.Properties["ServerComment"][0]; 
    var logFile = site.Properties["LogFileDirectory"][0]; 
} 

면책 조항 : 테스트되지 않은 코드

참조 this powershell example 비슷한 아이디어를 사용.

관련 문제