2
我有一個客戶,誰擁有一個Web方法是這樣工作的:自定義錯誤處理的WebMethod返回的XmlDocument
[WebMethod]
public XmlDocument Send(string stuff)
{
// ...
}
目前,有一類產生的代碼是重新拋出異常,觸發ASP.Net對異常的標準處理。
我們希望對其進行更改,以便webmethod仍然返回狀態代碼500,但是我們提供了一些text/plain
診斷信息,而不是默認的ASP.Net。
什麼是適當的方法來做到這一點?
我將它工作,使用Context.Response.End
這樣的:
[WebMethod]
public XmlDocument Send(string stuff)
{
try
{
// ...normal processing...
return xmlDocument;
}
catch (RelevantException)
{
// ...irrelevant cleanup...
// Send error
Context.Response.StatusCode = 500;
Context.Response.Headers.Add("Content-Type", "text/plain");
Context.Response.Write("...diagnostic information here...");
Context.Response.End();
return null;
}
}
但是,這感覺哈克,所以我希望有一個更好的答案。