【问题标题】:Web API 2 equivalent for WCF .svclog filesWCF .svclog 文件的 Web API 2 等效项
【发布时间】:2014-11-14 17:27:17
【问题描述】:

背景

我正在对 .NET Web API 2 服务的一些问题进行故障排除。这些问题是不一致的,从请求服务中,我们看到的只是连接重置和套接字异常。它甚至没有击中 API 中的用户代码/日志记录,而是针对不排除 WEB API 作为罪魁祸首的低级异常。

研究

过去,用于解决 WCF 中类似问题的一个非常有用的工具是启用 WCF Tracing。我正在寻找可以显示 Web API 的低级服务跟踪的等效项。

我找到了Global Error Handling,过去我也使用过Elmah 之类的软件包。但据我所知,这仅显示未处理的异常,而不是像 svclog 这样的服务的整个跟踪。

我也知道 Fiddler 和 Wireshark,虽然它们是用于 http 跟踪和低级协议嗅探的优秀工具。在这一点上,我更感兴趣的是 .NET 服务认为它正在接收什么以及它如何处理这些操作,而不是数据包是否通过网络传输。

总结

WCF .svclog 是否有 Web API 2 的等效项?特别关注与字节/请求的低级服务交互。

编辑

我接受了最佳答案,两个答案都指向相同的追踪形式。值得一提的是,对于这个特定问题,跟踪没有显示任何其他信息,但我相信它是最接近 WCF svclog 的跟踪 Web API。

【问题讨论】:

    标签: c# asp.net .net wcf asp.net-web-api


    【解决方案1】:

    WebAPI 中没有直接等效的解决方案,但他们在 V2 中添加了一些跟踪功能。您可以参考下面的文章。

    Tracing in ASP.NET Web API 2

    如果您遇到连接问题,我还会检查 IIS 日志和 httperr 日志,它们可能会为您提供有关此类问题的更多详细信息。

    【讨论】:

    • 好链接,我会设置它,看看它是否捕获了有关这些失败请求的任何信息。顺便说一句,关于 IIS 日志的要点。我将测试跟踪,然后就比较情况与你们联系。
    【解决方案2】:

    WCF 和 WebAPI 日夜不同。 WCF 具有复杂的消息传递基础架构,其中包含许多需要它们提供的跟踪级别才能进行故障排除的中间件。

    另一方面,WebAPI 非常简单,请求本身和您的代码之间几乎没有什么关系。该代码中的任何问题都显示为 YSOD(即 500 错误,如果禁用自定义错误将显示异常)。就像 MVC 甚至标准 ASP.NET 应用程序一样。

    现在,有一些跟踪可用,但它不像 svclog 那样使用 WCF。这里有资料:

    http://blogs.msdn.com/b/roncain/archive/2012/04/12/tracing-in-asp-net-web-api.aspx

    您必须编写自己的记录器,尽管您可能已经找到了一些记录器。

    【讨论】:

    • 基于问题,看起来代码甚至没有到达,所以不确定记录器会有多大帮助。如果我理解错了,有一些现有的记录器@github.com/WebApiContrib/WebAPIContrib/blob/master/readme.md如果你想编写自己的记录器,你可以以他们的实现为例
    • 公平点,跟踪信息不是那么低级别,但对于我正在寻找的内容可能仍然有用。不幸的是,我们甚至还没有达到 API 返回 500 的程度,但希望这些跟踪能够表明在这些失败期间请求是否完全命中了 Web API。谢谢。
    猜你喜欢
    • 2021-09-27
    • 2018-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-08
    • 2010-10-01
    • 2011-09-04
    • 1970-01-01
    相关资源
    最近更新 更多