如本文第一部分所述(.chm 文件 - 请参阅下面的注释)
单向调用不等同于异步调用。当单向调用到达服务时,它们可能不会一次全部调度,并且可能会在服务端排队等待一次调度......如果排队的消息数量超过了队列的容量,那么即使发出单向呼叫,客户端也会阻塞。
如果调用单向调用,它何时将控制权返回给调用者?同一篇文章的介绍指出,单向调用用于即发即弃操作,从而模拟一种异步调用。如果会话 WCF 服务具有启动会话的 Login() 单向方法,那么此方法何时将控制权返回给调用者?它是否在该方法在服务上实际执行之前返回?如果是这样,我如何确定该方法是在服务上执行的?
如果我希望服务将登录过程中可能发生的错误返回给客户端,异步调用是否是实现即发即弃行为的唯一方法?
注意:以上引用摘自 Juval Lowy 的一篇名为WCF Essentials - What You Need To Know About One-Way Calls, Callbacks, and Events的文章,可以在 2006 年 10 月号的 MSDN 杂志中找到。上面的链接指向 MSDN 上的帮助文件 (.chm) 格式。如果你不能让链接的 CHM 文件工作(我不能)你可以用 7zip 打开它。