2009-02-18 57 views
0

比方說,我有這樣的IInstanceProvider的實現:什麼時候可以返回WCF客戶端的異常?

public void ReleaseInstance(InstanceContext instanceContext, object instance) 
{ 
    try 
    { 
     unitOfWork.Commit(); 
    } 
    catch (Exception) 
    { 
     unitOfWork.Rollback(); 
     throw; 
    } 
    finally 
    { 
     unitOfWork.Dispose(); 
    } 
} 

扔;將永遠不會返回給客戶端,因爲它在服務完成工作並將數據返回給客戶端之後被調用,因此完成。我還能如何返回異常?還是有更好的地方可以做到這一點?

回答

0

我認爲你正在尋找一個錯誤的地方來做到這一點。我認爲一個更好的選擇是實現IDispatchMessageInspector接口並將其附加到DispatchRuntime上的MessageInspectors屬性公開的集合(通過很可能的行爲)。因此,您可以檢查進出的消息,並根據需要修改它們(這是您的例外將如何實現的,因爲返回消息中的錯誤)。因此,您不會讓異常冒泡,而是將其更改爲故障消息並將返回消息設置爲該消息。

+0

謝謝。奇蹟般有效。 – 2009-02-18 17:49:21

0

我不像我應該那樣熟悉WCF中的事務。上述代碼中的內容將結果返回給客戶端?它是否回滾?

相關問題