Performance 重复的基线WCF调用

Performance 重复的基线WCF调用,performance,wcf,soap,task-parallel-library,Performance,Wcf,Soap,Task Parallel Library,我的WPF应用程序上有WCF客户端。WCF客户端是通过异步操作生成的 我正在做与等待任务并行的调用 我注意到在获取数据时出现了一些延迟,当使用Microsoft Message Analyzer嗅探流量时,我注意到,对于我所做的一些调用,有两个请求以大约500毫秒的间隔发送,但得到了一个响应 在我的应用程序中,我只有一个电话 问题是为什么WCF客户端发送了2个底层调用 我通过IIS和IIS express下的托管服务进行了检查。两种情况下的结果相同。这里的问题不在于您的客户或服务,而在于您的分析

我的WPF应用程序上有WCF客户端。WCF客户端是通过异步操作生成的

我正在做与等待任务并行的调用

我注意到在获取数据时出现了一些延迟,当使用Microsoft Message Analyzer嗅探流量时,我注意到,对于我所做的一些调用,有两个请求以大约500毫秒的间隔发送,但得到了一个响应

在我的应用程序中,我只有一个电话

问题是为什么WCF客户端发送了2个底层调用


我通过IIS和IIS express下的托管服务进行了检查。两种情况下的结果相同。

这里的问题不在于您的客户或服务,而在于您的分析工具

Microsoft Message Analyzer是为低级别网络监控而设计的

像SOAP这样的高级协议几乎肯定会在每个逻辑调用中使用不止一条网络消息

WCF支持较低级别的协议,例如,网络上的消息数量可能与您进行的服务调用的数量更相似,但这并不保证

因此,服务本身是它收到多少逻辑服务调用的最终仲裁者


如果您确实需要分析底层流量,您还可以查看,它将网络调用组合成“对话”,解析为客户端服务请求/响应对的单个实例

你确定你不只是打了两次电话?可能您的客户端正在接收第一个呼叫的响应,但在等待第二个呼叫时超时?@TomRedfern肯定有一个呼叫。您的服务是否记录了两个呼叫?您使用的是什么协议/绑定?MS Message Analyzer似乎适用于低层(IP/网络)消息传递。发送的消息与拨打的电话数之间可能没有一对一的映射,这是毫无意义的。您的服务是进行了多少逻辑服务调用的最终仲裁者,而不是网络级别的分析。我将尝试WCF跟踪。我启用了客户端和服务器端的WCF日志记录。呼叫在同一时间排队,但在UI端按顺序处理。@SamvelSiradeghyan所以你能从中得出什么结论?这证实了你最初的分析吗?是的,这就是我希望看到的。