診斷交易式應用程式

本主題說明如何使用 Windows Communication Foundation (WCF) 的管理和診斷功能,對交易式應用程式進行疑難排解。

效能計數器

WCF 提供了一組標準的效能計數器,可讓您測量交易式應用程式的效能。如需詳細資訊,請參閱 WCF 效能計數器

效能計數器分為三種不同的層級:服務、端點和作業,如下表所述。

服務效能計數器

效能計數器 描述

流動的交易數

流動至此服務中作業的交易數。每當傳送給服務的訊息中出現一筆交易時,此計數器就會遞增。

每秒流動的交易數

每秒鐘流動至此服務中作業的交易數。每當傳送給服務的訊息中出現一筆交易時,此計數器就會遞增。

認可的交易作業數

此服務中交易已完成且其結果已經過認可的交易作業數。在這類作業下完成的工作會完全經過認可。資源會根據作業中完成的工作來更新。

每秒認可的交易作業數

每秒鐘此服務中交易已完成且其結果已經過認可的交易作業數。在這類作業下完成的工作會完全經過認可。資源會根據作業中完成的工作來更新。

中止的交易作業數

此服務中交易已完成且其結果已中止的交易作業數。在這類作業下完成的工作會復原。資源會還原為其先前狀態。

每秒中止的交易作業數

每秒鐘此服務中交易已完成且其結果已中止的交易作業數。在這類作業下完成的工作會復原。資源會還原為其先前狀態。

不確定的交易作業數

此服務中交易已完成且其結果不確定的交易作業數。結果不確定的已完成工作會處於不定狀態。資源會保留,以等待結果。

每秒不確定的交易作業數

每秒鐘此服務中交易已完成且其結果不確定的交易作業數。結果不確定的已完成工作會處於不定狀態。資源會保留,以等待結果。

端點效能計數器

效能計數器 描述

流動的交易數

流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。

每秒流動的交易數

每秒鐘流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。

作業效能計數器

效能計數器 描述

流動的交易數

流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。

每秒流動的交易數

每秒鐘流動至此端點處作業的交易數。每當傳送給端點的訊息中出現一筆交易時,此計數器就會遞增。

Windows Management Instrumentation

WCF 會透過 WCF Windows Management Instrumentation (WMI) 提供者,在執行階段公開服務的檢查資料。如需 如需存取 WMI 資料的詳細資訊,請參閱使用 Windows Management Instrumentation 進行診斷

許多唯讀的 WMI 屬性會指示服務套用的交易設定,下表則列出這些設定。

服務的 ServiceBehaviorAttribute 具有下列屬性。

名稱 型別 描述

ReleaseServiceInstanceOnTransactionComplete

Boolean

指定是否會在目前的交易完成時回收服務物件。

TransactionAutoCompleteOnSessionClose

布林值

指定當目前的工作階段關閉時,是否會完成暫止的交易。

TransactionIsolationLevel

字串,其中包含 IsolationLevel 列舉的有效值。

指定服務支援的交易隔離等級。

TransactionTimeout

DateTime

指定交易必須完成的期間。

ServiceTimeoutsBehavior 具有下列屬性。

名稱 型別 描述

TransactionTimeout

DateTime

指定交易必須完成的期間。

繫結的 TransactionFlowBindingElement 具有下列屬性。

名稱 型別 描述

TransactionProtocol

字串,其中包含 TransactionProtocol 型別的有效值。

指定用於流動交易的交易通訊協定。

TransactionFlow

布林值

指定是否已啟用傳入交易流程。

作業的 OperationBehaviorAttribute 具有下列屬性:

名稱 型別 描述

TransactionAutoComplete

布林值

指定未發生未處理的例外狀況時是否要自動認可目前的交易。

TransactionScopeRequired

布林值

指定作業是否需要交易。

作業的 TransactionFlowAttribute 具有下列屬性。

名稱 型別 描述

TransactionFlowOption

字串,其中包含 TransactionFlowOption 列舉的有效值。

指定交易流程被需要的程度。

追蹤

追蹤可讓您監視及分析交易式應用程式內的錯誤。您可以使用下列方式啟用追蹤:

  • 標準 WCF 追蹤
    這種追蹤型別與追蹤任何 WCF 應用程式相同。如需詳細資訊,請參閱 設定追蹤

  • WS-AtomicTransaction 追蹤
    您可以使用 WS-AtomicTransaction Configuration Utility 啟用 WS-AtomicTransaction 追蹤。此類追蹤可讓您深入了解系統內交易和參與者的狀態。若要同時啟用內部服務模型追蹤,您可以將 HKLM\SOFTWARE\Microsoft\WSAT\3.0\ServiceModelDiagnosticTracing 登錄機碼設定為 SourceLevels 列舉的有效值。您可以使用和其他 WCF 應用程式相同的方法,啟用訊息記錄。

  • System.Transactions 追蹤
    使用 OleTransactions 通訊協定時,無法追蹤通訊協定訊息。System.Transactions 基礎結構提供的追蹤支援 (使用 OleTransactions) 可讓使用者檢視交易發生的事件。若要啟用 System.Transactions 應用程式的追蹤,請在 App.config 組態檔內加入下列程式碼。

    <configuration>
      <system.diagnostics>
         <sources>
            <source name="System.Transactions" switchValue="Verbose, ActivityTracing">
               <listeners>
                  <add name="Text"
                     type="System.Diagnostics.XmlWriterTraceListener"
                     initializeData="SysTx.log"
                     traceOutputOptions="Callstack" />
               </listeners>
            </source>
         </sources>
         <trace autoflush="true" indentsize="4">
         </trace>
      </system.diagnostics>
    </configuration>
    

    這個程式碼也可以啟用 WCF 追蹤,因為 WCF 也會使用 System.Transactions 基礎結構。

請參閱

概念

管理與診斷
設定追蹤

其他資源

WS-AtomicTransaction Configuration Utility