如何診斷 WCF 配接器問題
本章節包含的步驟可協助您診斷 WCF 配接器的問題。
檢查 IIS 伺服器的 IIS 記錄和 HTTPERR 記錄中是否記載發生的錯誤
IIS 伺服器來源或目標記錄檔可能包含疑難排解外掛式 WCF 配接器問題的實用資訊。 根據預設,Windows Server 電腦上的 IIS 記錄檔位於下列目錄中:
%WinDir%\system32\LogFiles\W3SVC1\
注意
%WinDir% 是 IIS 伺服器上 Windows 目錄位置的預留位置。
根據預設,Windows Server 2003 和 Windows Server 2008 SP2 電腦上的 HTTPERR 記錄檔位於下列目錄中:
注意
HTTPERR 記錄檔僅適用于 Windows Server 2003 和 Windows Server 2008 SP2 型電腦。
%WinDir%\system32\LogFiles\HTTPERR\
使用 WCF 訊息記錄,進行 WCF 配接器問題的錯誤監控與診斷
WCF 能夠記錄內送與外寄訊息的離線耗用量。 您可以使用訊息記錄,瞭解訊息如何透過 WCF 配接器進行內送和外寄。 依預設,WCF 不會記錄訊息。 若要啟動訊息記錄,您必須修改 WCF 配接器所使用的組態檔。 如需 WCF 訊息記錄的詳細資訊,請參閱 中的 https://go.microsoft.com/fwlink/?LinkId=89003 。
對於處理中的 WCF 配接器,您可以針對BTSNtSvc.exe修改應用程式組態檔,BTSNtSvc.exe.config來啟用 WCF 訊息記錄。 您可以在安裝路徑中找到組態檔BizTalk Server。 如果您BizTalk Server安裝到預設位置,BtsNtSvc.exe 將會位於 \Program Files (x86) \Microsoft BizTalk Server < VERSION > 目錄中。
針對隔離的 WCF 配接器,您可以修改 BizTalk WCF 服務發佈精靈在 Web 應用程式資料夾中建立 的Web.config 檔案,以啟用 WCF 訊息記錄。
若要修改 BTSNtSvc.exe.config 或 Web.config,請使用 [記事本] 開啟組態檔,然後設定 WCF 訊息記錄,如下列組態範例所示:
<configuration> <system.serviceModel> <diagnostics> <messageLogging logEntireMessage="true" logMalformedMessages="false" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxMessagesToLog="300000" maxSizeOfMessageToLog="200000" /> </diagnostics> </system.serviceModel> <system.diagnostics> <sources> <source name="System.ServiceModel.MessageLogging"> <listeners> <add name="messages" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\wcfTrace.e2e" /> </listeners> </source> </sources> </system.diagnostics> </configuration>
您可以使用 Windows Communication Foundation (WCF) 服務追蹤檢視器工具分析 WCF 所記錄的訊息。 服務追蹤檢視器包含在 Microsoft Windows 軟體發展工具組中, (SDK) for Windows Vista 和 .NET Framework 執行時間元件。 您可以從 Microsoft 下載中心下載 Windows SDK。 如需使用此工具的詳細資訊,請參閱 中的「服務追蹤檢視器工具 (SvcTraceViewer.exe) 」 https://go.microsoft.com/fwlink/?LinkId=88991 。
將 Managed 例外狀況資訊傳回 SOAP 錯誤中的用戶端以便偵錯
您可以選取標準 WCF 接收位置 的 [在錯誤中包含例外狀況] 選項,以將 Managed 例外狀況資訊傳回至 SOAP 錯誤的用戶端,以簡化偵錯。 使用下列步驟來選取 [ 在錯誤中包含例外狀況] 選項。
在 BizTalk Server 管理主控台中,依序展開 [BizTalk Server系統管理]、[BizTalk 群組]、[應用程式]、[接收位置]、使用標準 WCF 配接器以滑鼠右鍵按一下接收位置,然後按一下 [屬性]。
在 [ 接收位置屬性] 對話方塊中,按一下 [ 設定]。
在傳輸對話方塊中的 [ 訊息 ] 索引標籤上,選取 [ 在錯誤中包含例外狀況 ] 選項。
如果您使用 WCF-Custom 或 WCF-CustomIsolated 配接器,您可以將ServiceDebugElement的IncludeExceptionDetailInFaults屬性設定為將 Managed 例外狀況資訊傳回給用戶端。 若要這樣做,請使用下列步驟:
在 BizTalk Server 管理主控台中,依序展開[BizTalk Server管理]、[BizTalk 群組]、[應用程式]、[接收位置]、使用 WCF-Custom 或 WCF-CustomIsolated 介面卡在接收位置上按一下滑鼠右鍵,然後按一下 [屬性]。
在 [ 接收位置屬性] 對話方塊中,按一下 [ 設定]。
在傳輸對話方塊中的 [ 行為] 索引標籤上,以滑鼠右鍵按一下 ServiceBehavior 節點,然後按一下 [ 新增延伸模組]。
在 [ 選取行為延伸模組 ] 對話方塊中,選取 [serviceDebug],然後按一下 [ 確定]。
在傳輸對話方塊中的 [行為]索引標籤上,按一下serviceDebug節點,然後在 [組態清單] 檢視中選取includeExceptionDetail屬性的True。
注意
將 Managed 例外狀況資訊傳回用戶端可能導致安全性風險,因為例外狀況詳細資料會公開未授權的用戶端可使用的內部服務實作相關資訊。
另請參閱
針對 WCF 配接器進行疑難排解的工具和公用程式BTSNTSvc.exe.config 檔案疑難排解