2010-07-01 42 views
0

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

回答

2

将您的合同标记为单向意味着:消息仅以一种方式流动。客户不会得到答案或等待服务执行,所以您的客户无法在大多数情况下从服务中获得答复或错误。

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

1

是否单向方法返回一个值还是有ref/out参数?如果是,那么这就是你得到InvalidOperationException的原因。这是预计的行为,根据MSDN帮助OperationContractAttribute.IsOneWay属性(http://msdn.microsoft.com/en-us/library/system.servicemodel.operationcontractattribute.isoneway(v=vs.110).aspx)。

查找注释部分,它下面的文字:

单向方法不能返回一个值或具有ref或out参数;否则会引发System.InvalidOperationException异常。 PS:我知道现在回复这个帖子为时已晚,但对于像我这样的人,在3年左右的时间里碰到了这个帖子,这可能是有用的。

相关问题