测量“发送的总字节数”使用 perfmon 从带有 nettcpbinding 的 Web 服务

发布于 2024-12-06 11:44:35 字数 261 浏览 0 评论 0原文

我有一个 Web 服务 (WCF),公开了 http 端点和 tcp 端点(使用 nettcpbinding)。我正在尝试使用不同端点来测量“发送的总字节数”的差异。

我尝试过使用 perfmon 并查看了性能计数器:Web 服务 >发送的总字节数。然而,看起来这仅测量 http 流量 - 你们中有人能证实这一点吗?看起来 TCP 流量并没有增加这个数字。

perfmon 中也有 TCP 类别,但没有“发送的总字节数”。 perfmon 是不是适合这项工作的工具?

I have a web service (WCF) exposing both http endpoints and a tcp endpoint (using the nettcpbinding). I am trying to measure the difference in "total bytes sent" using the different endpoints.

I have tried using perfmon and looked at the performance counter: web service > total bytes sent. However it looks like that this only measures http traffic - can any of you confirm this? It doesn't look like tcp traffic increments the number.

There is also a TCP category in perfmon, but there is not a "total bytes sent". Is perfmon the wrong tool for the job?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

dawn曙光 2024-12-13 11:44:35

解决了。我使用类似于以下的代码测量了客户端接收到的字节数:

NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface lan = null;

       foreach (NetworkInterface networkInterface in interfaces)
        {
            if (networkInterface.Name.Equals("Local Area Connection"))
            {
                lan = networkInterface;
            }
        }

        IPv4InterfaceStatistics stats = lan.GetIPv4Statistics();
        Console.WriteLine("bytes received: " + stats.BytesReceived);

在 Web 服务调用之前和之后执行此操作并比较 2 个值。显然,您需要注意客户端上的任何其他流量都不会干扰。

Solved. I measured bytes received on the client by using code something similar to:

NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface lan = null;

       foreach (NetworkInterface networkInterface in interfaces)
        {
            if (networkInterface.Name.Equals("Local Area Connection"))
            {
                lan = networkInterface;
            }
        }

        IPv4InterfaceStatistics stats = lan.GetIPv4Statistics();
        Console.WriteLine("bytes received: " + stats.BytesReceived);

Do this before and after the web service call and diff the 2 values. Obviously you need to be aware that any other traffic on the client does not interfere.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文