Comment detecter un "500 internal server error"

Résolu
warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009 - 19 juil. 2006 à 10:50
warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009 - 19 juil. 2006 à 19:38
Plop
j'ai une fonction dans une appli qui envoit des données en POST a un serveur
elle marche tres bien et la voila:

private string envoi_requette(string requette)
{
byte[] dataToPost = new ASCIIEncoding().GetBytes(requette);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.adressedistante.com");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = dataToPost.Length;
Stream myStream = myRequest.GetRequestStream();
myStream.Write(dataToPost, 0, dataToPost.Length);
myStream.Close();
WebResponse myResponse = myRequest.GetResponse();
Stream responseStream = myResponse.GetResponseStream();
GZipStream zipStream = new GZipStream(responseStream, CompressionMode.Decompress);
StreamReader streamReader = new StreamReader(zipStream);
string result = streamReader.ReadToEnd();
streamReader.Close();
responseStream.Close();
myResponse.Close();
myStream.Close();
return result;
}


et j'utilise une autre fonction toute faite pour envoyer des données en GET:

System.Net.WebClient client = new WebClient();
client.DownloadString("http://LESDONNEESAENVOYERENGET?arg=eqdfqd&arg=eqdqsd");


rarement , mon programme me retourne une erreur et s'arrette: il me dit "500 internal server error"
j'ai le choix entre continuer ou arretter. si je met continuer le programme ne fais plus rien (c une boucle quasi infinie normalement)....

mon programme doit tourner 24h/24 et donc cette erreur me gene car elle m'oblige a le relancer souvent (1 fois par jours minimum)...

quelqu'un a t il une idée de ce qui provoque ça et comment, dans mes deux fonctions ci dessus, detecter cette erreur pour retenter d'envoyer les données quelques minutes apres?



la société de consommation porte mal son nom car un con fait rarement une sommation avant de dire une connerie en société
A voir également:

3 réponses

cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
19 juil. 2006 à 11:07
Essais avec un try catch autour du webresponse:
try
{
myResponse = myRequest.GetResponse();
if (((HttpWebResponse)myResponse).StatusCode == System.Net.HttpStatusCode.Unauthorized)
                { }
else if (((HttpWebResponse)myResponse).StatusCode == System.Net.HttpStatusCode.InternalServerError)
                {} //<-- ici poru toi surement
}
catch (WebException ex)
{
                MessageBox.shoh(ex.Status.toString()); //<--regarde deja quel statue ca te renvoie
                               // pour ensuite faire un if(ex.Status == WebExceptionStatus.ProtocolError) {}
}

f.colo
3
warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009
19 juil. 2006 à 10:54
hum je vois que le bug des retours a la ligne existe toujours avec opera...
je refais donc le message avec IE

Plop
j'ai une fonction dans une appli qui envoit des données en POST a un serveur
elle marche tres bien et la voila:

private string envoi_requette(string requette)
{
byte[] dataToPost = new ASCIIEncoding().GetBytes(requette);
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://www.adressedistante.com");
myRequest.Method = "POST";
myRequest.ContentType = "application/x-www-form-urlencoded";
myRequest.ContentLength = dataToPost.Length;
Stream myStream = myRequest.GetRequestStream();
myStream.Write(dataToPost, 0, dataToPost.Length);
myStream.Close();

WebResponse myResponse = myRequest.GetResponse();
Stream responseStream = myResponse.GetResponseStream();
GZipStream zipStream = new GZipStream(responseStream, CompressionMode.Decompress);
StreamReader streamReader = new StreamReader(zipStream);
string result = streamReader.ReadToEnd();
streamReader.Close(); responseStream.Close();
myResponse.Close(); myStream.Close();
return result;
}

et j'utilise une autre fonction toute faite pour envoyer des données en GET:

System.Net.WebClient client = new WebClient();
client.DownloadString("http://LESDONNEESAENVOYERENGET?arg=eqdfqd&arg=eqdqsd");

rarement , mon programme me retourne une erreur et s'arrette: il me dit "500 internal server error"
j'ai le choix entre continuer ou arretter.
si je met continuer le programme ne fais plus rien (c une boucle quasi infinie normalement)....

mon programme doit tourner 24h/24 et donc cette erreur me gene car elle m'oblige a le relancer souvent (1 fois par jours minimum)...

quelqu'un a t il une idée de ce qui provoque ça et comment, dans mes deux fonctions ci dessus, detecter cette erreur pour retenter d'envoyer les données quelques minutes apres?

la société de consommation porte mal son nom car un con fait rarement une sommation avant de dire une connerie en société
0
warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009
19 juil. 2006 à 19:38
Ok merci :)


la société de consommation porte mal son nom car un con fait rarement une sommation avant de dire une connerie en société
0
Rejoignez-nous