error-handling - 将所有内部服务器错误插入 Windows 事件日志

标签 error-handling wcf event-log

我开发了一个处理 HTTP 请求的小型 WCF 服务。

我想知道发生的每一个错误:

  • 从契约(Contract) View 中导致 500 内部服务器错误的所有内容
  • 从绑定(bind) View 中导致 CommunicationException 的所有内容(我已经编写了自定义的,但也在使用标准的)

  • 应将错误放入 Windows 事件日志中。

    我的问题是:
  • 是否有可能为整个 WCF 堆栈添加一个中央事件处理程序,它捕获所有异常并将它们打印到事件日志中?

  • 问候。

    最佳答案

    在服务器端 - 是的,正如 John 已经指出的那样,您基本上可以实现 IErrorHandler您的服务类上的接口(interface)并捕获该端的所有错误。

    但是,在客户端,您只需要使用良好的旧 .NET try {...} catch {...}保护所有服务调用 - 毕竟,您可能

  • 调用一个根本不存在的服务器
  • 调用暂时不可用的服务器
  • 网络连接松动(用大推土机剪断你的网络线 :-))
  • 更多这样的事情

  • 那些将是 CommunicationExceptions (或其后代)并且必须在客户端发生时进行处理。

    因此,您可以集中处理服务器端的事情(至少只要消息已经通过您的服务类并正在处理中)——其他任何事情都必须单独处理。

    马克

    关于error-handling - 将所有内部服务器错误插入 Windows 事件日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1306141/

    相关文章:

    java - 你能在 Java 中捕获 "package x does not exist"错误吗?

    c# - .NET 在为 WCF 服务生成类型时加载寻找另一个版本的程序集

    visual-studio-2008 - WCF: 'Update Service Reference' 软管我的文件

    wcf - Entity Framework POCO 与 WCF 软件设计问题

    asp.net - 发生错误时在ASP.NET站点上重置IIS

    javascript - 如何读取node.js中回调函数的错误

    python - 无效的URL给出regexmatchError并且在pytube程序中给出无效的URL时不引发错误

    c# - 如何记录严重级别的事件日志?

    c# - 成功写入事件日志(并收到一条我不理解的消息)

    css - 从事件日志 4720 中筛选详细信息