WCF服务呼叫服务
我有两个.NET3.5WCF服务,其中服务A同步调用服务B 这两个服务位于同一台计算机上,并且具有以下行为: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
[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基本代码,但仍然存在此问题李>
我希望有人能帮助我
提前谢谢