2014-01-06 46 views
0

我有我的WCF應用的場景,我需要請求登錄例外於數據庫中,我已經存儲了我的請求,在字典和使用IsFault檢查我請求是否是故障,如果是錯比我已經登錄到數據庫追趕失去響應在WCF

public static string key; 
Dictionary<string , string> actionToReplyAction; 
String value = ""; 
public NLog.Logger _logger = NLog.LogManager.GetCurrentClassLogger(); 

public void AfterReceiveReply(ref Message reply, object correlationState)   
{ 
    if (reply.IsFault) 
    { 
     string requestAction = (string)correlationState; 
     _logger.Debug("Request :::: " + key); 
     _logger.Debug("Response :::: " + reply.ToString()); 
    } 
} 

public object BeforeSendrequest(ref Message request, IClientChannel channel) 
{ 
    key = request.ToString(); 

    return null; 
} 

我怎樣才能日誌每當響應丟失請求。我是WCF的新手:如果您可以給我示例代碼,這將有所幫助。

+0

你失去了什麼意思? – Tim

+0

如果響應在達到AfterRecieveReply之前丟失,或者如果響應沒有達到Afterrecievereply,那麼有些事情就像timeoutexception –

+0

如果沒有響應,然後它不會達到afterrecievereply正確的....如何記錄請求每當它沒有進入AfterRecieveReply並且每當響應丟失時。 –

回答

1

如果我理解正確,您正在尋找一種方法來捕獲所有未捕獲的異常。然後,你可以用通常的方式登錄它們。

This post給出了許多有關WCF中的異常處理的提示。除此之外,它還介紹瞭如何通過WCF管道捕獲所有未處理的異常。

希望我幫了忙!

+0

是的你是對的我正在尋找記錄未捕獲異常的請求,我只能記錄異常的請求,但如果沒有響應,我不能 –

+0

很高興幫助。實際上,沒有例外請求。一個異常只能由於請求而發生。如果一切順利,那麼結果就是迴應。否則,異常將被處理並記錄下來......無論如何,您應該提供答案。對於其他用戶導航到您的問題非常重要的是能夠確定一個有用的答案... –

+0

當然,我會upvote,當我找到一個適合我的答案,感謝您的幫助。 –