Я вызываю веб-метод с использованием ajax call. Вот пример вызова.
[WebMethod(true)]
public static string Save(string customParams)
{
throw new ApplicationException("Example Exception");
}
$.ajax({
url: url,
type: "POST",
data: data,
contentType:"application/json; charset=utf-8",
dataType: props.dataType ? props.dataType : "text",
error: function (xhr, errorType, ex) {
debugger;
err(ex);
}
})
Если этот метод выдает исключение, я получаю только 500 внутренних ошибок сервера. Stacktrace пуст и я не могу получитьвнутреннее сообщение об исключении. Я украсил webmethod блоком try catch и вернул HttpException и установил его текст, но это не сработало.
try
{
throw new ApplicationException("Example Exception");
}
catch (Exception e)
{
throw new HttpException(500,e.Message,e);
}
Я также попытался это решение снова безудачи.
catch (Exception e)
{
HttpContext.Current.Response.Write(e.Message.ToJsonString());
HttpContext.Current.Response.StatusCode=500;
}
Кстати, я также экспериментировал с тем, что необработанное исключение, когда запрос является ajax-запросом, не может быть перехвачено Application_Error Global.asax. Здесь - это проблема.Я выключил пользовательскую ошибку. Теперь она отображает ошибку, но все еще не является намеченным решением.
Любое решение?Заранее спасибо.