2010-07-01 75 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年左右的時間裏碰到了這個帖子,這可能是有用的。

相關問題