我正在尝试向WCF服务发送多条消息。如果消息计数很小,它可以正常工作,但是如果我发送了很多消息(比方说50),那么发送应用程序就会挂起。它最终无法写入管道异常。
以下是发送消息的代码
for (var i=0; i< 50; i++)
WcfChannel.SomeMethod(SomeParameter);
这是一些服务器配置代码
_host = new ServiceHost(typeof(TService));
var binding = new NetNamedPipeBinding
{
SendTimeout = TimeSpan.FromDays(4),
ReceiveTimeout = TimeSpan.FromDays(4),
MaxBufferPoolSize = 2147483647,
MaxBufferSize = 2147483647,
MaxReceivedMessageSize = 2147483647
};
_host.AddServiceEndpoint(typeof(TInterface), binding, Address);
服务器实施
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[CallbackBehavior(UseSynchronizationContext = false)]
public class WcfService
{ ... }
这是我在超时后得到的异常消息
写入管道时出错:管道正在关闭。 (232,0xe8)。
那么这里有什么问题?服务器设置有问题吗?
更新1:
如果我发送50条消息,那么我会得到例外。捕获异常后,我发送了50条消息。它工作正常。之后我发了100条消息。它也工作得很好。为什么这只是第一次发生?,