2011-12-19 2 views
2

내 목표는 원격 서버에서 웹 사이트 이름 목록을 얻는 것입니다. 하지만 예외가 발생합니다 :어떤 포트가 DirectoryEntry에서 사용됩니까?

RPC 서버를 사용할 수 없습니다.

public List<string> GetWebSites(string serverIP) 
    { 
     List<string> names = new List<string>(); 
     DirectoryEntry Services = new DirectoryEntry(string.Format("IIS://{0}/W3SVC", serverIP)); 
     Services.Username = "user name"; 
     Services.Password = "password"; 
     IEnumerator ie = Services.Children.GetEnumerator(); 
     DirectoryEntry Server = null; 

     while (ie.MoveNext()) 
     { 
      Server = (DirectoryEntry)ie.Current; 
      if (Server.SchemaClassName == "IIsWebServer") 
      { 
       names.Add(Server.Properties["ServerComment"][0].ToString()); 
      } 
     } 

     return names; 
    } 

이 방화벽가 컴퓨터에 꺼져있을 때, 잘 작동 : 여기

는 코드입니다.

내가 알아야 할 것은 DirectoryEntry에서 어떤 포트를 사용합니까? 또는 방화벽을 끄지 않고 웹 사이트 이름을 얻는 다른 방법이 있습니까?

+2

넓은 범위의 포트를 사용합니다. 특정 포트 나 더 작은 범위로 강제해야하는 경우 [여기] (http://support.microsoft.com/kb/154596)를보십시오. 내가 잘못 본 것이 아니라면 UDP 389도 필요합니다. – vcsjones

답변

2

LDAP 프로토콜이 TCP를 사용하지 않는다고 생각하십니까? 비 SSL의 경우 포트 389, SSL의 경우 636이어야합니다.