2013-11-26 59 views
0

在我的wcf服務中我有暴露給服務客戶端的方法。這個方法用FaultContract屬性裝飾,所以我可以返回並捕獲自定義異常。WCF服務拋出異常,但客戶端永遠不會收到它

內IBookService我

[FaultContract(typeof(BookServiceAuthorizeFault))] 
[OperationContract] 
IEnumerable<string> GetAllBookTitlesFromSpecificGenre(string genre); 

在這個定製的類型故障包裹在裏面

[DataContract] 
public sealed class BookServiceAuthorizeFault 
{ 
    private string _Message; 
    public BookServiceAuthorizeFault(string message) 
    { 
     _Message = message;   
    } 

    [DataMember] 
    public string Message 
    { 
     get { return _Message; } 
     set { _Message = value; } 
    } 
} 

Insude實現此接口我故意拋出異常

public IEnumerable<string> GetAllBookTitlesFromSpecificGenre(string genre) 
{ 
    throw new FaultException<BookServiceAuthorizeFault>(new BookServiceAuthorizeFault("Unauthorize access"));  
} 

終於在服務客戶端我想抓住這個異常

catch (FaultException<BookServiceAuthorizeFault> bsaf) 
{ 
    MessageBox.Show(bsaf.Message); 
} 

但我這個catch塊永遠不會hitted,我就public IEnumerable<string> GetAllBookTitlesFromSpecificGenre(string genre)

我在做什麼錯在這裏得到未處理的用戶異常,在服務端 ?

回答

1

我會說,如果您更改visual studio中的調試設置,您的解決方案應該按預期工作。

轉到Tools - >Options - >Debugging - >General,取消選擇 「Enable the exception assistant」。

相關問題