适用于 Windows 的 WCF 服务和事件跟踪

ETWTracing 示例演示如何在 Windows Communication Foundation (WCF) 中使用分析性跟踪,通过 Windows 事件跟踪 (ETW) 发出事件。 分析跟踪是在 WCF 堆栈中的关键点发出的事件,允许在生产环境中对 WCF 服务进行故障排除。

WCF 服务中的分析跟踪是一种可以在生产环境中启用的跟踪,其对性能的影响非常小。 这些跟踪都以事件的形式向 ETW 会话发出。

此示例包括一个基本 WCF 服务,其中事件从服务发送到事件日志,可以使用事件查看器进行查看。 该示例还可以启动一个专用 ETW 会话,用于侦听来自 WCF 服务的事件。 此示例包含用于创建专用 ETW 会话的脚本,用于将事件存储在可以使用事件查看器读取的二进制文件中。

使用此示例

  1. 使用 Visual Studio 打开EtwAnalyticTraceSample.sln解决方案文件。

  2. 若要生成解决方案,请按 Ctrl+Shift+B

  3. 若要运行解决方案,请按 Ctrl+F5

    在 Web 浏览器中,单击 Calculator.svc。 服务的 WSDL 文档的 URI 应显示在浏览器中。 复制该 URI。

    默认情况下,服务开始侦听端口 1378 http://localhost:1378/Calculator.svc上的请求。

  4. 运行 WCF 测试客户端(WcfTestClient.exe)。

    WCF 测试客户端(WcfTestClient.exe)位于 \<Visual Studio Install Dir>\Common7\IDE\WcfTestClient.exe

  5. 在 WCF 测试客户端中,选择文件,然后选择添加服务

    在输入框中添加终结点地址。 默认值为 http://localhost:1378/Calculator.svc

  6. 打开事件查看器应用程序。

    在调用服务之前,请启动事件查看器并确保事件日志侦听从 WCF 服务发出的跟踪事件。

  7. “开始” 菜单中,选择 “管理工具”,然后选择 “事件查看器”。 启用分析和调试日志。

  8. 在事件查看器中的树视图中,导航到 事件查看器应用程序和服务日志MicrosoftWindowsApplication Server-Applications。 右键单击 “应用程序服务器-应用程序”,选择“ 查看”,然后 显示分析和调试日志

    确保选中“ 显示分析和调试日志 ”选项。

  9. 启用 分析 日志。

    在事件查看器中的树视图中,导航到 事件查看器应用程序和服务日志MicrosoftWindowsApplication Server-Applications。 右键单击“分析”,然后选择“启用日志”。

对服务进行测试

  1. 切换回 WCF 测试客户端,然后双击 Divide 并保留默认值,指定分母为 0。

    如果分母为 0,则服务将引发错误。

  2. 观察从服务发出的事件。

    切换回事件查看器并导航到 事件查看器应用程序和服务日志MicrosoftWindowsApplication Server-Applications。 右键单击 “分析 ”,然后选择“ 刷新”。

    WCF 分析跟踪事件显示在事件查看器中。 请注意,由于服务引发了错误,因此错误跟踪事件将显示在事件查看器中。

  3. 重复步骤1和2,但使用有效的输入。 参数的值 N2 可以是 0 以外的任意数字。

    刷新分析通道以确定 WCF 事件不包含任何错误事件。

此示例展示了从 WCF 服务发出的分析跟踪事件。

清理(可选)

  1. 打开事件查看器。

  2. 导航到 事件查看器应用程序和服务日志MicrosoftWindowsApplication-Server-Applications。 右键单击 “分析 ”,然后选择“ 禁用日志”。

  3. 导航到 事件查看器应用程序和服务日志MicrosoftWindowsApplication-Server-Applications。 右键单击 “分析 ”并选择“ 清除日志”。

  4. 选择“ 清除 ”选项以清除事件。

另请参阅