我有一個asp.net MVC Web應用程序,它利用jQuery進行多個Ajax調用。 ajax調用Controller來捕獲存儲過程中引發的各種驗證異常。當在過程中發現驗證例外,我用下面的語法ASP.NET MVC jQuery Ajax錯誤/異常處理
RAISERROR ('VALIDATION ERROR: xyx is required.', 16, 1)
我的MVC控制器則抓住了SQL例外,在那裏我做了一些記錄,然後重新拋出一個新的異常(e.Message)。
catch (SqlException se)
{
// logging happens
// exception get rethrown for ajax error handling
throw new Exception(se.Message);
}
從那裏,我的ajax錯誤處理程序接管。
error: function(jqXHR, textStatus, errorThrown) {}
在我的本地Visual Studio服務器的Ajax錯誤處理程序檢索以下jqXHR.responseText的所需:
<html>
<head>
<title>VALIDATION ERROR: xyx is required.</title>
</head>
....
從那裏我解析標題和顯示驗證錯誤。很棒。
然而,當我在我的代碼部署到我收到的jqXHR.responseText一個通用的500響應託管的IIS服務器:
<html>
<head>
<title>Runtime Error</title>
</head> ....
出於某種原因,我的共享督促服務器不同的處理異常。你知道我怎樣才能讓這兩種環境產生第一種行爲?
我試圖加入我的web.config以下行,但沒有運氣
<httpErrors errorMode="Custom" existingResponse="PassThrough">
<remove statusCode="404" subStatusCode="-1" />
<remove statusCode="502" subStatusCode="-1" />
<remove statusCode="501" subStatusCode="-1" />
<remove statusCode="500" subStatusCode="-1" />
</httpErrors>
在此先感謝