2012-05-26 19 views
0

我已經實現代碼(ELMAH無處不在)來捕捉未處理的異常在Silverlight-4在下面的鏈接ELMAH無處不在 - Silverlight 4中

https://github.com/vincoss/vinco-logging-toolkit給出。

我也下載了代碼示例窗體鏈接,但是,我無法找到未處理的異常存儲位置。

我已經在asp.net中實現了Elmah,並且我們可以在其中通常看到domainname/elmah.axd(如web.config中給出的)的所有未處理的異常。

請幫我找到所有未處理的異常存儲在silverlight中的地方。

或者任何人都可以告訴我任何可以實現相同目標的庫。

在此先感謝了在Silverlight中提出

回答

2

異常被存儲在數據庫中。請檢查文檔如何配置Silverlight異常處理。

你可以找到項目文件夾中的數據庫「Vinco.Elmah.Everywhere \來源\ ErrorWebSite \ App_Data文件\ Elmah.Everywhere.mdf」

裝上此數據庫的MS SQL服務器。

Elmah.Everywhere代碼庫最近更新了新功能和更好的示例。

請嘗試運行樣本,然後瀏覽這個

URL記錄的錯誤:HTTP://本地主機:11079/ELMAH

注:Elmah.Everywhere日誌的目的是錯誤記錄到遠程現場。要獲得Elmah.Everywhere日誌的全部好處,請創建一個網站或使用現有的「ErrorWebSite」來記錄錯誤。這允許您有多個將錯誤記錄到中央數據庫的項目。只需在ExceptionDefaults中更改ApplicationName以區分不同的項目。

樣品的Silverlight配置

您可以配置錯誤日誌記錄,如下例所示。

private static void SetUpExceptionHandler() 
{ 
    Uri uri = Application.Current.Host.Source; 
     string currentHost = string.Format("{0}{1}{2}:{3}", uri.Scheme, Uri.SchemeDelimiter, uri.Host, uri.Port); 

    // Configure 
    var writter = new ClientHttpExceptionWritter 
    { 
    // NOTE: Possible to pass URI by startup arguments. 
      RequestUri = new Uri(string.Format("{0}/error/log", currentHost), UriKind.Absolute) 
    }; 

    var defaults = new ExceptionDefaults 
    { 
    Token = "Silverlight-Test-Token", 
    ApplicationName = "Silverlight-Sample", 
    Host = string.Format("{0}{1}{2}:{3}", uri.Scheme, Uri.SchemeDelimiter, uri.Host, uri.Port) 
    }; 
    ExceptionHandler.Configure(writter, defaults); 
} 

在應用程序構造函數調用處理程序設置方法。

public App() 
{ 
    SetUpExceptionHandler(); 
} 

添加處理程序登錄到Application_UnhandledException方法

private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e) 
{ 
    ExceptionHandler.Report(e.ExceptionObject, null); 
} 

配置將會記錄對Silverlight的主機URL錯誤。確保在bin文件夾中有Elmah.Everywhere.dll,Elmah.dll以及Web.config文件中的配置細節。

要查看瀏覽器中的錯誤,請參閱「ErrorWebSite」示例。網址應該像這樣。http://yourdomain.com/elmah

欲瞭解更多信息,請參閱提供的樣品。