Bonsoir à tous,

[stage en entreprise]
Je dois réaliser une application permettant de savoir si un site est accessible ou non.

Sachant que :
- les ping ne sont pas réalisables a cause de la sécurité.
- Il y a un proxy demandant une authentification.

Donc je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
            NetworkCredential nc_compte = new NetworkCredential("jean dupond", "motdepass", "mondomaine");
            WebProxy wp_squid = new WebProxy("adresse:port", true);
            wp_squid.Credentials = nc_compte;
 
            WebClient wc_internet = new WebClient();
            wc_internet.Proxy = wp_squid;
            wc_internet.DownloadString("http://www.monsite.net");
Il fonctionne bien sur toutes les adresses locales mais sur toutes les autres il met une erreur serverProtocolViolation (exemple : google, yahoo,...)

De temps en temps cela fonctionne mais la plupart du temps cela plante donc je comprends pas du tout la raison.

J ai fait le test avec une tempo de 1minute entre les visites et pendant environ 3heures ( 170fois ) il a réussi a atteindre 38 fois les adresses web contre 170 pour les adresses locales. Quelqu'un a t il une idée sur le problème ?

J'ai vu qu'il y avait une histoire de pré authentification sur le WebRequest et une méthode AuthenticationManager.PreAuthenticate() ce que cela peut être utile ? SI oui quelqu'un peut il m'aider parce que j ai essayé un truc du genre :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
            WebRequest w = WebRequest.Create("http://www.monsite.net");
            w.PreAuthenticate = true;
            w.Proxy = wp_squid;
            AuthenticationManager.PreAuthenticate(w, nc_compte);
mais cela plante a l'appel de PreAuthenticate()

Merci d'avance a vous tous.

Bonne soirée