Rychlý tip - C # Jak DNS úplný název domény služby Active Directory ...

Andy Grogan 3. srpna 2010 · 0 komentáře

v Exchange Programování NET. , Microsoft Visual Studio , Rychlé tipy , Windows 2003 - ADSI , Windows 2008 - ADSI

Mírně off topic to jedno, ale ve stejném duchu jako můj post zde (jak dostat vaše organizace Exchange jméno pomocí C #'') - to bylo něco, co se zblázním.

V podstatě jsem byl přepisovat (to, co se nyní zdá navždy) jsem Exchange 2007 Rozdělovací funkce v jazyce C # pomocí Visual Studio. Jednou z nových funkcí tohoto nástroje je dynamicky zjistit úplný název domény služby Active Directory, které Exchange Server je členem.

Tak například - pokud máte doménu s názvem Justice.com - tato hodnota bude vráceno do textového pole v mé aplikaci.

V prvních verzích systému software jsem použil následující kód, který jsem našel na internetu pomocí Google:

  IPHostEntry on = Dns.GetHostEntry (Životní prostředí UserDomainName.);
 tboxDNSDomain.Text = he.HostName.ToString (); 

Nicméně, během testování (sic. o funkci, která detekovala domény DNS), 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 - nicméně při testování stejného kódu na systému Windows 2003 kolonce I by se zobrazit následující chybová zpráva:

DNS.GetHostEntry = Žádný takový hostitel je známo - viz snímek obrazovky níže NET výjimka dialogu:.

GetHostEntry

Po hodně testování, a, upřímně řečeno nakládání horniny kolem jsem došel k závěru (což by mohlo být opodstatněné), že je něco jiného, ​​o systému Windows 2008 NET API je k tomu 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ému se zdá, že narazíte na tento problém.

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

  pomocí 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řinesla úspěch, a tak, pokud jste kódování v C # a chcete vyřešit jen úplný název domény Active Directory (nebo více bod FQDN domény, kde je stroj, který jste vykonávajícího kód na) - výše uvedené 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: