我有一个 wcf 服务,当我们对服务进行 40 次模拟调用时,我们开始在客户端上看到很多时间。请参阅 wcf 跟踪日志的附图,按持续时间排序。服务和客户端在同一台机器上,使用标准的 tcp 绑定。
我们看到的错误是
1) 套接字连接被中止。这可能是由于处理您的消息时出错或远程主机超出接收超时,或者是潜在的网络资源问题造成的。本地套接字超时为“10675199.02:48:05.4775807”。2) System.IO.PipeException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 写入管道时出错:管道正在关闭。(232, 0xe8)。
进一步测试更新...
看起来这种情况只有在服务完成某些工作时才会发生,如果我注释掉我在服务中所做的工作,它需要同样的 1000 / in 3min 请求而没有问题。
客户端与服务器有 40 个活动连接。
即使使用示例应用程序,我也会看到相同的错误。我在服务器中做了以下事情..
public double Add(double n1, double n2) {
for (int i = 0; i < 1000000; i++)
{
Trace.WriteLine("this is a test");
}
return n1 + n2;
}
并在客户端执行以下操作
Action<string> a = CallService5000TimesInLoop;
for (int i = 0; i < 30; i++)
{
a.BeginInvoke("Url",null,null);
}