Rychlý tip - C # Získání DNS FQDN Active Directory domény ...

Andy Grogana 3. srpna 2010 · 0 komentářů

V Exchange Programování v .NET , Microsoft Visual Studio , rychlých tipů , Windows 2003 - ADSI , Windows 2008 - ADSI

Mírně off topic tenhle, ale podél stejné lince jako můj post zde (jak dostat své jméno organizace Exchange pomocí C '' #) - to bylo něco, co bylo zblázním.

V podstatě jsem přepisování (za to, co se nyní zdá navždy) můj Exchange 2007 Segregace nástroj v C # pomocí Visual Studio. Jednou z nových funkcí tohoto nástroje je dynamicky detekovat úplný název domény Active Directory domény, které Exchange Server je členem.

Tak například - pokud máte doménu s názvem Justice.com - tato hodnota by se retuned do textového pole v mé žádosti.

V počáteční sestavení softwaru jsem byl s použitím následující kód, který jsem našel na internetu přes Google:

  IPHostEntry on = Dns.GetHostEntry (Environment .UserDomainName);
 tboxDNSDomain.Text = he.HostName.ToString (); 

Nicméně, během testování jsem zjistil, že výše uvedený kód bude fungovat v pohodě, kdy byla celková aplikace spuštěna v systému Windows 2008 Server (sic funkce, které zjištěné doménu DNS.) - Ale při testování stejný kód proti Windows 2003 kolonky I by získat následující chybě:

DNS.GetHostEntry = Žádný takový hostitel je znám - viz snímek obrazovky pod pro dialog .NET Výjimka:

GetHostEntry

Po dlouhém testování a, upřímně řečeno nakládání horniny kolem jsem došel k závěru, (což by mohlo být neopodstatněné), že tam je něco jiného o .NET API Windows 2008, které jsou v systému Windows 2003 - které způsobuje tento problém se stane.
Addtionally z mého výzkumu v online fórech se zdá, že nejsem jediný člověk, kterého se zdá, že narazit na této otázce.

Takže spíše než pokračovat ztrácet čas, jsem se rozhodl zjistit, jestli bych mohl najít jiný způsob, jak vyřešit problém - na které jsem přišel s následující kód:

  použitím System.Net.NetworkInformation;

 .GetIPGlobalProperties(); IPGlobalProperties vlastnosti = IPGlobalProperties .GetIPGlobalProperties ();
 tboxDNSDomain.Text = properties.DomainName;

Testování výše uvedený kód na obou platformách Windows přineslo úspěch, takže; pokud jste kódování v C # a chtěli vyřešit jen úplný název domény služby Active Directory (nebo více na bod FQDN domény, které stroj, který jste vykonávajícím kód na) - výše zdá, že poskytuje velmi spolehlivé výsledky ,

comments… add one now } {0 komentářů ... přidat jednu nyní }

Zanechat komentář

CAPTCHA Image
Obnovit obrázek
*

Předchozí příspěvek:

Následující příspěvek: