c# - 查找使用 WCF net.tcp 发送消息所花费的时间

标签 c# .net wcf distributed-apps

我正在编写一个支持 WCF 的分布式应用程序原型(prototype),以尝试找出升级现有的“通过 tcp 发送 xml 进行通信”应用程序时遇到的任何问题。我使用回调合约向服务器注册客户端(ServiceHost 中的单例),到目前为止客户端和服务器之间的所有通信都正常。我可以将多个客户端连接到服务器,并从服务器发送所有客户端都会收到的广播。我可以阻止特定客户端,而其他客户端仍然会收到调用。这很好。

为了继续学习和评估性能,我希望客户端记录服务器发送每条消息的时间,以及客户端接收同一消息的时间。我应该如何最好地解决这个问题?

是否有类似于 SOAP 扩展的东西,我可以在其中添加从服务器传出和到客户端传入的内容?或者我是否需要向服务器在客户端调用的每个方法添加一个“timeSent”参数并记录客户端接收到的时间(哎呀!)?有没有更好的方法来实现这一点?

我使用的是 net.tcp 而不是 wsDualHttpBinding(它也可以工作,但性能较差)。

最佳答案

嗯...这是一个困难的问题。这里的问题是您甚至无法确保客户端和服务器计时器同步。

如果您想要发送一些带外数据,这样您就不需要修改您的方法,您可以使用建议的方法 here 。我想应该够了。

关于c# - 查找使用 WCF net.tcp 发送消息所花费的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/160040/

相关文章:

c# - 在 C# 中,将大文件加载到 winform richtextbox

c# - 在 VB.NET、C# 等中,一点规则是否会自动优化到代码中?

c# - 如何编写 .Net UDP 可扩展服务器

c# - 如何从 C# 获取 Word 文档的文件名?

asp.net - 调用 COM 组件时返回了错误 HRESULT E_FAIL

c# - 这个语法有什么作用?如果(obj 是 SomeType obj2)

c# - SQL插入或更新

c# - FileHelpers 在读取记录之前更改 RecordLine

将 WSDL 中定义的响应反序列化为空消息时,WCF 使用 SOAP 会出错

Azure 辅助角色中通过 HTTP 提供的 WCF 服务?