我有一个托管WCF服务(net.tcp)的应用程序,它接收和发送数据。有没有办法知道自从主机启动以来传输了多少数据?
WCF有自己的计数器,它可以帮助您获取所需的信息。
为此,您需要启用它们。
像这样:
<configuration>
<system.serviceModel>
<diagnostics performanceCounters="All" /> // use this line.
</system.serviceModel>
</configuration>
每个服务有3种计数器,只有当服务正在托管和运行时才可见。
ServiceModelEndpoint 3.0.0.0 + ServiceModelOperation 3.0.0.0 + ServiceModelService 3.0.0.0
我认为ServiceModelOperation 3.0.0.0会给你发送/接收的字节数。
我认为应该有一个性能计数器可用,是的。
查看PerfMon中WCF在您的系统中安装的几十个性能计数器 - 我相信其中有一个处理发送和接收数据的计数器....
否则,以编程方式:没有扩展,我会说不行。
Marc
使用WCF“开箱即用”无法找到每个服务传输的总字节数。您需要扩展WCF以捕获此信息。我认为,使用BindingElementExtension和IMessageInterceptor可以使您达到检查通过服务流动的单个消息的级别。在那一点上,您只需要获取消息的大小。
此项目允许压缩WCF消息,这意味着它可以达到您需要达到的相同低级别。