Rychlý tip - C # Jak DNS FQDN Active Directory domény ...

Andy Grogan dne 3.8.2010 · 0 komentářů

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

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

V podstatě jsem přepisování (za to, co se nyní zdá navždy) má Exchange 2007 segregace nástroj v 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 retuned do textového pole v mé aplikaci.

V počáteční sestavení software jsem používal 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í jsem zjistil, že výše uvedený kód bude fungovat v pohodě, kdy byla celková aplikace běží na 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 dojít k následující chybě:

DNS.GetHostEntry = Ne jako hostitel je známo - viz snímek obrazovky níže dialogu NET Výjimka:

GetHostEntry

Po dlouhém testování a, upřímně řečeno, odtěžení asi jsem dospěl k závěru (což by mohlo být neopodstatněné), že tam je něco jiného o NET API systému Windows 2008 se, že jsou v systému Windows 2003 -, která způsobuje tento problém se stane.
Addtionally z mého výzkumu v on-line fóra by se mohlo zdát, že nejsem jediný člověk, kterému se zdá, že narazit na tento problém.

Takže namísto toho, aby ztrácet čas, rozhodl jsem se 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í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 kódování v C # a chcete vyřešit jen úplný název domény v doméně Active Directory (nebo na bod FQDN domény, který stroj, který se provádění kódu o) - 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: