WCF是One Way属性

时间:2010-07-01 13:19:00

标签: wcf

我有一个将isoneway属性设置为true的wcf方法。现在当我从客户端调用此服务时,服务将一个无效的操作异常抛回到某个业务场景出错的客户端bcos。我的理解是它只会抛出endpointnotfound异常和timeoutexception.Can有人请解释为什么会发生这种情况?

2 个答案:

答案 0 :(得分:2)

将合同标记为单向意味着:消息仅以一种方式流动。客户端将无法得到答案或等待服务执行,因此您的客户端无法在大多数时间内从服务中获得回复或错误。

如果你想要那个,那么也许单向服务不适合你,而你真正想要的是一个空回复的双向服务(即无效)

答案 1 :(得分:1)

OneWay方法是返回值还是具有ref / out参数?如果是,那么这就是您获得InvalidOperationException的原因。根据OperationContractAttribute.IsOneWay Property(http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway(v=vs.110).aspx)的MSDN帮助,这是预期的行为。

查找备注部分,它有以下文字:

单向方法不能返回值或具有ref或out参数;否则抛出System.InvalidOperationException异常。

PS:我知道回复帖子已经太晚了,但对于像我这样在3年左右绊倒帖子的人,这可能会有用。