2010-09-25 39 views
4

我寫的ASP.NET Web服務和我投擲的SoapException一條消息:在.NET Web服務中,SoapException.Message屬性如何易於閱讀?

throw new SoapException("BANG!", SoapException.ClientFaultCode); 

當我創建一個ASP.NET客戶端,並要求標籤顯示SoapException.Message屬性,它顯示類似於以下內容的消息:

System.Web.Services.Protocols.SoapException:BANG!在[DIRECTORY] \ WebService1.asmx.cs中的WebServiceException.WebService1.HelloWorld():第23行

有沒有一種簡單的方法來簡單地顯示消息BANG!而不是整個字符串?或者我應該只使用正則表達式?

+1

你確定你在呼喚exception.Message財產;輸出看起來像來自exception.ToString(),如果您僅將該異常對象實例傳遞給要顯示的label.Text,則這將是默認操作。 – 2010-09-25 01:16:39

回答

6

如果將Web服務配置爲打開自定義錯誤消息,則堆棧跟蹤將不會出現在SOAP錯誤中,這反過來意味着您的客戶端不會看到它。

在web.config中:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    ... 
    <system.web> 
     ... 
     <customErrors mode="On"/> 
     ... 
    </system.web> 
    ... 
</configuration> 
+0

[msdn link](http://msdn.microsoft.com/zh-cn/library/aa480514.aspx)提到customErrors xml標記。 _The On設置告訴ASP.NET不要將堆棧跟蹤信息添加到任何故障._ – broadband 2014-03-11 12:16:41