2010-10-26 99 views
2

在Silverlight應用程序的客戶端處理錯誤的正確方法是什麼?我嘗試構建一個服務端點,它將接收有關錯誤的詳細信息,然後將該字符串寫入數據庫。問題是,錯誤的文本超過了最大字節長度,所以我無法發送異常消息和堆棧跟蹤。處理客戶端錯誤的更好方法是什麼?Silverlight記錄錯誤

回答

0

使用這種模式如果你發現你的消息是太長髮送給你的日誌Web服務,然後請嘗試設置這樣的結合性質maxBufferSizemaxStringContentLength適當大的值。他們默認爲16KB,我個人將其設置爲2147483647(即int.MaxValue)。

顯然你不能直接發送原始異常到日誌Web服務(異常是不可序列化的),我所做的是編寫一個函數,它接受一個異常,並將其轉化爲一個WCF友好結構,傳遞給我的日誌記錄結束點。當然,你需要確保如果失敗了,你需要有一個備份計劃,比如,如果你正在瀏覽器中運行,可以將它記錄到獨立的存儲器中,或者如果你正在運行提升的OOB,則將它記錄到用戶的文件系統中。

0

您不應該考慮通過服務記錄錯誤消息。如果您想記錄的錯誤與服務本身有關,該怎麼辦?也許承載所有相關服務(包括錯誤日誌記錄服務)的服務器無法訪問或關閉。應在客戶端記錄客戶端錯誤,並在連接到服務可用時定期刷新到服務器。

那是我會做什麼?