2011-02-07 3 views
3

WMI (C# 사용)를 사용하여 모든 웹 사이트 바인딩에 대해 원격 IIS 7을 쿼리하는 방법을 보여주는 샘플 코드를 찾으려고합니다. 이 작업을 수행하는 데 필요한 모든 클래스/이름 공간 및 쿼리의 헤드 또는 테일을 만들 수 없습니다. 샘플 코드가 없으면 좋은 문서를 다시 볼 수 있습니다.WMI - IIS 7 - 모든 웹 사이트 바인딩 검색

덕분에

답변

1

당신은 외부 IIS 인스턴스에 연결하는 ServerManager.OpenRemote("serverName") 기능을 사용해야합니다. (MSDN 문서 here를 참조하십시오.)

을 당신이 그 웹 사이트에서 활성화 된 바인딩을 보려면 각 Site 개체의 site.Bindings 속성을 검색 할 수 있습니다 serverManager.Sites 컬렉션을 열거합니다.

1

작정 당신은 System.DirectoryServices 어셈블리를 사용하여 IIS 메타베이스에 액세스하여이 작업을 수행 할 수 있어야합니다.

예를 들어 여기에 포함 된 모든 사이트 및 속성 구성을 열거 할 수 있습니다.

당신의 프로젝트에이 참조를 추가

using System.DirectoryServices

// Assuming your Server Id is 1, and you are connecting to your local IIS. 
DirectoryEntry de = new DirectoryEntry(@"IIS://localhost/W3SVC/1/Root"); 
foreach (DirectoryEntry entry in de.Children) 
{ 
    foreach (PropertyValueCollection property in entry.Properties) 
    { 
     Console.WriteLine("Name: {0}, Value {1}",property.PropertyName, property.Value); 
    } 
} 
+2

IIS6 메타베이스 호환성이 서버에 설치된 경우에만 작동한다는 점에 유의해야합니다. 또한 항상 .Dispose()하여 COM 개체를 :) –