錯誤報告和診斷
本主題描述 StreamInsight 中所提供的功能,用來處理處理序和查詢失敗及產生傾印,以進行進一步的問題診斷。在 Windows Vista 和 Windows Server 2008 及更高版本的作業系統上,StreamInsight 會使用 Windows 錯誤報告來進行錯誤報告並產生傾印。在 Windows XP 和 Windows Server 2003 作業系統上,StreamInsight 會使用 .NET 3.5 隨附的 Dr. Watson 版本 (DW20.exe 和 DWWin.exe),進行錯誤報告並產生傾印。
因為 StreamInsight 會使用標準 Windows 作業系統工具進行錯誤報告並產生傾印,所以它會依賴使用者的同意,才能進行 Windows 作業系統層級所設定的錯誤報告。當使用者同意啟用作業系統層級的錯誤報告時,用戶端應用程式的錯誤報告和傾印會自動傳送給 Microsoft 而且會從本機伺服器中移除傾印。若要調查傾印以進行疑難排解,您必須停用錯誤報告。請洽詢執行 StreamInsight 應用程式之伺服器的管理員,以判斷是否在該電腦上啟用錯誤報告。您可變更設定,如下列章節所述。
產生傾印
在兩種狀況下會針對 StreamInsight 應用程式產生傾印。
處理序失敗
StreamInsight 可以部署在內嵌伺服器或主控伺服器組態中。如果是這些組態中未處理的全域例外狀況,此失敗會類似於任何 CLR 應用程式中的失敗,而且 Windows 作業系統將會產生處理序傾印。例如,假設使用者定義函數或運算子在個別執行緒上叫用模組內引發之未處理的例外狀況,或是從配接器傳回未處理的例外狀況。
查詢失敗
StreamInsight 查詢中的例外狀況不一定會在內嵌或主控伺服器組態中產生 StreamInsight 處理序失敗。例如,假設從使用者定義函數或運算子傳回例外狀況。您可以使用 StreamInsight 診斷 API 檢測應用程式查詢,以程式設計方式產生偵錯傾印,如下列範例所示。但是,請注意在 Windows XP 和 Windows Server 2003 中,造成傾印的產生將會使處理序失敗。但是 Windows Vista 及 Windows Server 2008 和更新版本就不是這個情況。
Server server = Server.Create(...); // or Server.Connect(...) if this is a client application connecting to a server.
...
// Generate error reports when a query fails.
DiagnosticSettings settings = new DiagnosticSettings(DiagnosticAspect.GenerateErrorReports, DiagnosticLevel.Always);
server.SetDiagnosticSettings(new Uri("cep:/Server"), settings);
注意 |
---|
偵錯傾印檔案可能會包含敏感性資訊。若要保護敏感性資訊,您可以使用存取控制清單 (ACL) 來限制這些檔案的存取權,或將這些檔案複製到具有存取限制的資料夾。將偵錯檔案傳送給 Microsoft 支援服務之前,我們建議您移除任何敏感性或機密資訊。 |
報告錯誤
根據預設,當啟用錯誤報告的使用者同意時,錯誤報告會傳送給 Microsoft。
Windows Vista 及 Windows Server 2008 和更高版本
處理序失敗
任何 Windows 應用程式都可以內嵌 StreamInsight 伺服器。當應用程式可執行檔失敗時,錯誤報告的使用者同意設定會決定是否將錯誤傳送給 Microsoft。根據錯誤的原因,StreamInsight 呼叫堆疊和其他資訊可能是錯誤傾印的一部分。StreamInsight 沒有任何檢測會干預這個處理序。
查詢失敗
報告查詢失敗也會遵循上面所述之報告處理序失敗的相同同意原則。但是,當您依照上面所述來以程式設計方式針對查詢失敗啟用傾印的產生之後,您可以選擇將傾印和錯誤保留在發生錯誤的本機伺服器上。
若要這樣做,您必須使用下列登錄機碼設定,關閉 StreamInsight 的自動化錯誤報告。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\Consent]
"StreamInsightDump"=dword:00000001
如果是處理序和查詢失敗的情況,您可以檢視 [控制台] 中的 [問題報告及解決方案] 來檢查錯誤。若要檢視 Windows 7 和 Windows Server 2008 R2 中的錯誤,請從 [控制台] 按一下 [行動作業中心],然後依序按一下 [維護]、[檢視可靠性歷程記錄] 和 [檢視所有問題報告]。將會根據應用程式的名稱 (例如 MyApplication_name.exe) 或根據 StreamInsightHost.exe 來報告錯誤。
Windows XP 和 Windows 2003
若要關閉錯誤報告,藉此將傾印儲存到本機主機,請遵循這個 Microsoft 支援文件 (機器翻譯) 中的指示。錯誤報告會排入佇列,而且位於以下目錄中:%USERPROFILE%\Local Settings\Application Data\PCHealth\ErrorRep 或 %SYSTEMROOT%\PCHEALTH\ErrorRep\QSignoff。
具有錯誤報告介面存取權限的管理員可以在佇列中檢視錯誤,並選擇根據案例將錯誤傳送給 Microsoft。作業系統會針對佇列中的項目數保留一個上限,此上限取決於系統參數。一旦超過這個上限,作業系統就不會將其他新的失敗報告加入佇列中。因此,我們建議管理員最好定期檢閱這些佇列,找出任何需要進一步調查的錯誤。您可以選擇呼叫 dw20.exe 來排清佇列,否則就會永久保留報告。