lunedì 14 maggio 2007

Questo sembra definitivamente un baco.

[UPDATE: forse ho parlato troppo presto, se uso un DNS esterno, tipo OpenDNS invece di affidarmi al router che provvede ad inoltrare le richieste al DNS dell'ISP, il baco non si riproduce, quindi e' sicuramente specifico per la configurazione con il DNS gestito dal router e quindi sospetto che sia e' un baco del router]

Passi per riprodurre il baco:

  • Aprire IE e navigare un sito.
  • spegnere il router DSL (questo passo e' fondamentale che sia eseguito in questo modo, togliere il cavo di rete non e' equivalente e non permette di riprodurre il baco).
  • fare refresh del sito appena navigato (IE deve mostrare a questo punto la pagina di errore).
  • riaccendere il router e mentre si aspetta che venga ristabilita la linea fare refresh del sito navigato.
Nonostante la liena sia di nuovo attiva IE si rifiutera' di aprire nuovamente la pagina del sito, navigando altri siti non ci sono problemi, ma neppure chiudendo e riaprendo IE il sito di test verra' riaperto.

La stessa identica cosa si puo' fare usando XmlHttpRequest al posto di IE, in realta' il baco l'ho scoperto proprio con esso.

Se a questo punto si sconnette il cavo di rete e lo si riconnette tutto torna a posto.

Pensando ad un problema di caching ho provato ad aggiungere alla request fatta con XmlHttpRequest un parametro variabile proprio per forzare a non usare la cache oltre a settare l'header "Cache-Control" al valore "no-cache": stesso risultato.

Poi ho provato da C# usando HttpWebRequest, stesso identico problema, l'eccezione sollevata e' "The remote name could not be resolved: www.example.com" (chiaramente al posto di www.example.com c'e' il sito che sto testando), quindi il problema e' con la risoluzione del nome.

Anche ping fallisce miseramente.

Decisamente un problema con la cache del client DNS, infatti eseguendo:
c:\ipconfig.exe /flushdns
tutto torna a funzionare. Peccato che pero' la mia applicazione non possa eseguire il flush della cache del client DNS perche' questa operazione richiede i privilegi di amministratore.

Nessun commento:

Posta un commento