C# 向wcf服务发送多条消息时客户端挂起
我正在尝试向WCF服务发送多条消息。若消息计数很小,它可以正常工作,但若我发送了很多消息(比如50条),那个么发送应用程序就会挂起。它最终无法写入管道异常 这是发送消息的代码C# 向wcf服务发送多条消息时客户端挂起,c#,wcf,named-pipes,C#,Wcf,Named Pipes,我正在尝试向WCF服务发送多条消息。若消息计数很小,它可以正常工作,但若我发送了很多消息(比如50条),那个么发送应用程序就会挂起。它最终无法写入管道异常 这是发送消息的代码 for (var i=0; i< 50; i++) WcfChannel.SomeMethod(SomeParameter); 服务器实现 [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] [CallbackBehavio
for (var i=0; i< 50; i++)
WcfChannel.SomeMethod(SomeParameter);
服务器实现
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[CallbackBehavior(UseSynchronizationContext = false)]
public class WcfService
{ ... }
这是超时后得到的异常消息
写入管道时出错:管道正在关闭。(232,0xe8)
那么这里的问题是什么?服务器设置有问题吗
更新1:
如果我发送50条消息,那么我会收到异常。捕获异常后,我又发送了50条消息。它工作得很好。在那之后,我发了100条信息。它也工作得很好。为什么只有第一次出现这种情况?,请尝试:ConcurrencyMode=ConcurrencyMode。ServiceBehavior属性中的多个请参阅WCF服务行为:这里有一个更新。我发送了50条消息,收到了一个异常,之后我又发送了50条消息,它们工作正常。在那之后,我又发了100条信息,效果也不错。为什么它第一次不起作用?我不确定是否可以更改服务并发模式。对于单一模式有什么解决方案吗?我将并发模式更改为多模式,但仍然遇到异常,
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
[CallbackBehavior(UseSynchronizationContext = false)]
public class WcfService
{ ... }