2014-05-09 133 views
0

哪有WCF CommunicationObject過渡到故障狀態:我創建了Visual Studio中的WCF庫,它部署到IIS,裏面我有兩種方法:WCF故障狀態

public string GetData(int value) 
    { 
     throw new FaultException(value.ToString()); 
    } 

    public CompositeType GetDataUsingDataContract(CompositeType composite) 
    { 
     throw new TestException(); 
    } 

從客戶端,我只需一遍又一遍地調用這兩種方法,但是,CommunicationObjectFaultedException不會在任何時候拋出。

我在文章WCF error handling and some best practices中讀到,非FaultExceptions被默認「自動」轉換爲FaultException。如果這是正確的,那麼WCF客戶端的通信對象何時以及如何成爲故障狀態?

另一件事,是否有人知道任何MSDN參考,確認FaultException是確保WCF通信對象不會轉換爲Faulted state的最佳方法。

回答

3

如果您使用會話(即支持會話的綁定)並且對方法的調用引發了未處理的異常,則通道將處於故障狀態。

您可以進入故障狀態的另一種方法是在通道打開時會話超時。

它是通道即在故障狀態,而不是服務

Understanding State Changes in WCF