2009-12-15 97 views
1

我有一個順序工作流,它作爲工作流服務駐留在IIS中。Windows工作流 - 無法處理ReceiveActivity中的異常

我的工作流程以ReceiveActivity開頭,並在ReceiveActivity內使用SendActivity調用WCF服務。如果此呼叫接收到異常,則我的ReceiveActivity上會有一個FaultHandlerActivity用於處理呼叫,並將默認值發送回客戶端。

我的客戶端發生了什麼情況,即使我的FaultHandlerActivity正在運行,SendActivity上的異常仍然以FaultException形式冒泡回客戶端(我通過在我的錯誤中記錄單個CodeActivity的開始和結束來驗證這一點處理程序)

我的問題是:如何吞服發生活動中發生的異常,而不會將FaultException返回給客戶端?

回答

0

好吧,我想通了。

我的receiveActivity直接在它上面有一個錯誤處理程序。然後會發生的事情是,如果任何子活動引發異常,則會調用接收活動上的錯誤處理程序,並將其設置爲Faulted狀態,並將收到的異常返回給客戶端應用程序 - 無論我是否想要。

解決的辦法是在receiveActivity內部添加一個序列活動,完成序列活動中的所有處理,並向序列添加一個faultHandlerActivity,Sequence設置我的默認返回值。

接收活動永遠不會發生故障,並且異常不會返回給我的客戶端,但會返回序列的FaultHandler中設置的默認值。

希望這會幫助別人有同樣的問題