首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 基礎異常處理模式入門:預設行為與 IncludeExceptionDetailInFaults 除錯開關(上)

     編輯:關於.NET

WCF 以簡單易用著稱,異常處理亦然。本文介紹基礎編程模式。

一、異常從服務端拋出時的預設行為

將異常分為應用異常(業務邏輯)與基礎設施異常(序列化、傳輸等)。若服務操作拋出 DivideByZeroException,客戶端捕獲到的永遠是固定訊息的 FaultException:「由於內部錯誤,服務器無法處理該請求...」。原始異常資訊被屏蔽,主要為安全考量,防止敏感資訊洩露給不受信任客戶端。

二、異常細節傳輸:開啟 IncludeExceptionDetailInFaults

開發除錯階段需獲取完整異常細節。兩種等效方式:

  1. 配置 <serviceDebug includeExceptionDetailInFaults="true" /> 於服務行為。
  2. 服務類型套用 [ServiceBehavior(IncludeExceptionDetailInFaults=true)]。

開啟後,客戶端捕獲 FaultException<ExceptionDetail>。ExceptionDetail 為資料契約,封裝 HelpLink、InnerException、Message、StackTrace、Type 等屬性,對應 System.Exception 成員。可輸出完整堆疊追蹤與異常型別。

注意:會話通道遇異常轉為 Faulted 狀態,需呼叫 Abort() 強制中止而非 Close()。IncludeExceptionDetailInFaults 僅供除錯使用,生產環境應關閉。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved