Comment detecter un "500 internal server error" [Résolu]

Signaler
Messages postés
145
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 septembre 2009
-
warenbe
Messages postés
145
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 septembre 2009
-
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

Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
2
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
Messages postés
145
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 septembre 2009

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é
Messages postés
145
Date d'inscription
dimanche 2 décembre 2001
Statut
Membre
Dernière intervention
10 septembre 2009

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é