WCF服务呼叫服务

WCF服务呼叫服务,wcf,service,timeout,client,synchronous,Wcf,Service,Timeout,Client,Synchronous,我有两个.NET3.5WCF服务,其中服务A同步调用服务B 这两个服务位于同一台计算机上,并且具有以下行为: [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] 我为服务B创建了客户端,并在服务a的操作合同中这样使用它: Proxyclient client = null; bool error = true; int returnVal = 0; try { client = new Proxycli

我有两个.NET3.5WCF服务,其中服务A同步调用服务B

这两个服务位于同一台计算机上,并且具有以下行为:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)]
我为服务B创建了客户端,并在服务a的
操作合同中这样使用它:

Proxyclient client = null;
bool error = true;
int returnVal = 0;

try
{
  client = new Proxyclient;
  returnVal = client.CallServiceB();
  client.Close();
  error = false;
}
finally
{
  if (error)
  {
    client.Abort();
  }
}
但当调用服务A时,它会将错误写入TraceListener日志文件:

写入管道时出错无法识别的错误232

请注意,此消息是特定于绑定的(
netNamedPipeBinding
)。对于我测试的所有其他绑定,我也遇到了一个错误。其他绑定的一般含义是:

无法写入/连接连接超时,已被删除 关闭

然而,服务/客户机工作,它只是在日志文件中产生错误,所以我认为WCF在这里是基于重试的。但这会垃圾邮件我的日志文件,我不确定这是否会在未来造成一些问题

需要注意的一些非常特别的事情:

只有当客户端调用服务B的时间超过2分钟时(但这次我测试的每个绑定都会发生变化),才会出现此问题。所以,在服务启动后的第一次,日志中没有错误,如果我每10秒调用一次此服务,日志中也不会有错误

我所做的:

  • 我在没有任何更改的情况下使用了所有服务的超时设置
  • 我将客户端放入一个控制台应用程序,并从该控制台应用程序调用服务B。这里不写这些错误
  • 我在多台机器上进行了测试,发现所有机器都有问题
  • 我删除了服务A和B中的所有代码。我只有WCF基本代码,但仍然存在此问题 我希望有人能帮助我

    提前谢谢