1.one-way不等于异步操作,并发操作
2.确保one-way设置为Reliablity .
3.避免把one-way应用在Per-Session上,应该在per-call or singleton .
如果非要在Per-Session上设置one-way,应该确保这是最后一个操作(IsTerminate=True)
[ServiceContract(SessionMode=SessionMode.Required]
public interface IContract
{
[OperationContract(IsOneWay=true, IsTerminate=true ]
void DoOneWay();
}
4.对于Callback的Contract应该加后缀Callbac k ,Callback定义为One-Way ,WSDualHttpBinding
5.如果在Intranet通过WSDualHttpBinding方式调试或者发布Callback,则定义C allbackPor=0 (WCF将寻找任何一个可用的端口,默认为80)
[CallbackBaseAddressBehavior(CallbackPort = 0 )]
class MyClient : IMyContractCallback {...}