Ho un'applicazione che è stata scritta per i camion remoti da utilizzare sul servizio di cella. Prima di fare qualsiasi cosa, sto controllando internet con questa classe:test di connessione a Internet su una rete cellulare
using System.Net;
namespace SSS.ServicesConfig.MiscClasses
{
public class VerifyInternetAccess
{
public static bool HasInternet()
{
try
{
using (var client = new WebClient())
using (var stream = client.OpenRead("http://www.google.com"))
{
return true;
}
}
catch
{
return false;
}
}
}
}
In alcuni casi, la luce sul dispositivo cellulare esterno ha una luce verde come se ha internet. La mia classe di test torna falsa, quindi pensa che non abbia internet.
Il driver può quindi aprire Internet Explorer, chiudere Internet Explorer, eseguire immediatamente la mia domanda e supera il test di cui sopra.
Gli utenti dicono che IE sta "svegliando" Internet per trasferirlo.
La mia classe non fa essenzialmente la stessa cosa? In caso contrario, come posso "svegliare" la connessione Internet come fa IE?
solo una teoria, ma forse legate proprio DNS. Non sei riuscito a risolvere www.google.com e il servizio DNSCache ha memorizzato questo risultato in modo che continui a non funzionare anche quando dovrebbe funzionare, fino a quando qualcosa non dà un calcio al servizio. È possibile disabilitare DNSCache o testare la connettività Internet utilizzando solo indirizzi IP, ad esempio è possibile eseguire il ping 8.8.8.8. – Havenard
Ecco un'altra soluzione: http://social.msdn.microsoft.com/forums/en-US/7eda3979-6424-4702-89f4-1f586b613b01/flush-dns-cache – Havenard