Por que Dns.Resolve no meu aplicativo C # leva x3 no W2008R2?

1

Eu tenho o código C # que leva x3 a mais para ser executado no W2008R2 vs W7

o código é muito simples (obtendo o nome do host):

        Stopwatch sw = new Stopwatch();
        sw.Start();

        IPHostEntry ip = Dns.Resolve(Dns.GetHostName());
        string s = ip.HostName;

        sw.Stop();

        Console.WriteLine(sw.ElapsedTicks);
        Console.WriteLine(s);

Eu parei alguns serviços no W2008. Pode ser que eu acidentalmente parei algo que ajuda a propagar notificações de DNS ou qualquer outra coisa ...

Alguma opinião?

EDIT: Me desculpe, eu não disse. O x3 significa: no W7, leva < 1ms e no W2008 é 2 ou 9ms ... Não se trata realmente de tempo limite.

    
por Boppity Bop 23.06.2010 / 21:25

1 resposta

1

O que acontece quando você tenta resolver esse nome (ou qualquer outro nome) fora do seu programa, por exemplo? usando ping ou nslookup ?

O aplicativo deve ser executado exatamente da mesma maneira em ambos os computadores, independentemente do O.S., portanto, isso pode muito bem ser um problema de DNS. Se o nome da máquina não estiver registrado no (s) servidor (es) DNS que a máquina está usando ou se a máquina não puder acessar todos os servidores DNS configurados ou se o (s) servidor (es) não puder resolver o nome , ou ( muitos outros possíveis problemas aqui ), a consulta irá falhar e / ou o tempo limite, e somente então será resolvido usando o arquivo local hosts .

Você deve definitivamente verificar sua configuração de DNS.

    
por 23.06.2010 / 21:42