2011-12-19 3 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 no? Должен быть порт 389 для не-ssl и 636 для SSL

Смежные вопросы