J'ai un problème avec l'environnement de production et la façon dont jquery ajax capture l'erreur.
Dans mon environnement de développement sur ma machine locale, lorsque jquery ajax appelle un webservice [webmethod] et que le webmethod envoie une erreur spécifique, jquery ajax capture correctement cette erreur mais dans l'environnement de production, jquery ajax capture l'erreur mais le message est générique "There was an error processing the request." avec "Internal Server Error".
par exemple
Le code c#
[WebMethod]
public String dostuff(String Auth){
// some code here
// if error occurs
throw new Exception("Some specific error message");
return "ok";
}
l'appel ajax de jquery
var data = JSON.stringify({ Auth: "some data here" }, null);
$.ajax({
type: "POST",
url: '/Services/memberService.asmx/dostuff',
data: data,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
alert(result.d); // alert ok
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("responseText=" + XMLHttpRequest.responseText + "\n textStatus=" + textStatus + "\n errorThrown=" + errorThrown);
}
});
sur ma machine locale, le XMLHttpRequest.responseText es "Message d'erreur spécifique
dans l'environnement de production, le XMLHttpRequest.responseText es "Il y a eu une erreur dans le traitement de la demande.
l'environnement local est Windows 7 home premium avec IIS 7.5.7600.16385
L'environnement de production est Windows Server 2008 R2 avec IIS 7.5.7600.16385 (identique à l'environnement de développement).
Pourquoi cette différence et comment faire en sorte que l'environnement de production génère l'erreur spécifique ?
** * ** * ** * juste un suivi tnx Justin * ** * ** * ** * ** *
j'ai ajouté le fichier web.config dans le dossier services (Doh... je me demande pourquoi je n'y ai pas pensé)
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
</configuration>