0

我已经实现了代码(Elmah Everywhere)来捕获 Silverlight-4 中的未处理异常,如下面的链接所示

https://github.com/vincoss/vinco-logging-toolkit

我还下载了代码示例表单链接,但是我找不到存储未处理异常的位置。

我在 asp.net 中实现了 Elmah,我们通常可以在其中看到 domainname/elmah.axd 上所有未处理的异常(如 web.config 中给出的)。

请帮助我找到所有未处理的异常都存储在 Silverlight 中的位置。

或者任何人都可以向我推荐任何可以实现相同目标的库。

提前致谢

4

1 回答 1

2

Silverlight 中引发的异常存储在数据库中。请查看文档如何配置 Silverlight 异常处理。

您可以在项目文件夹“Vinco.Elmah.Everywhere\Source\ErrorWebSite\App_Data\Elmah.Everywhere.mdf”中找到数据库</p>

将此数据库附加到您的 MS SQL Server。

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

请尝试运行示例,然后浏览记录的错误

网址:http://localhost: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);
}

在 Application 构造函数中调用处理程序设置方法。

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”示例。URL 应如下所示。http://yourdomain.com/elmah

有关更多信息,请参阅提供的样本。

于 2012-07-26T13:32:24.513 回答