在你的服务合同中尝试这样的事情:
[OperationContract(IsOneWay=true)]
void Send(string message);
请参阅以下链接:
WCF 中的单向操作
编辑:OP 已经在使用我建议的解决方案。
解决问题的建议方法 - 取自 MSDN(单向服务):
单向操作阻塞的客户端
重要的是要认识到,虽然一些单向应用程序会在出站数据写入网络连接后立即返回,但在某些情况下,绑定或服务的实现可能会导致 WCF 客户端阻塞使用单向操作. 在 WCF 客户端应用程序中,WCF 客户端对象在出站数据写入网络连接之前不会返回。这适用于所有消息交换模式,包括单向操作;这意味着将数据写入传输的任何问题都会阻止客户端返回。根据问题,结果可能是向服务发送消息时出现异常或延迟。
您可以通过在客户端对象和客户端传输的发送操作之间插入一个缓冲区来缓解这个问题。例如,使用异步调用或使用内存中的消息队列可以使客户端对象快速返回。这两种方法都可能增加功能,但线程池和消息队列的大小仍然会强制执行限制。
相反,建议您检查服务和客户端上的各种控件,然后测试您的应用程序场景以确定任一端的最佳配置。例如,如果会话的使用阻塞了服务上的消息处理,则可以将
System.ServiceModel.ServiceBehaviorAttribute.InstanceContextMode
属性设置为,PerCall
以便每个消息可以由不同的服务实例处理,并设置为ConcurrencyMode
以
Multiple
允许多个线程一次发送消息。另一种方法是增加服务和客户端绑定的读取配额。