2010-11-03 81 views
0

我使用VS2010 + C#+ .Net 4.0 + IIS 7.0 + WCF。當我在下面的代碼中創建一個WCF客戶端對象實例時,我發現「檢查點1」已記錄,但「檢查點2」未記錄。但沒有拋出異常(我在整個代碼塊中發現了異常,並且沒有輸出「檢查點3」)。WCF客戶端創建問題

任何想法如何進一步調試,以查看WCF客戶端代理創建中的問題?什麼是WCF客戶端代理創建中的正常問題(我認爲創建只需要創建一個本地內存對象來表示WCF客戶端對象實例,不需要真正與遠程WCF服務通信,所以不應該正常失敗,請更正我如果我錯了)?也許有一些配置錯誤?

BtW:以下代碼位於WCF服務(WCF服務器端,運行/託管在IIS 7.0中)以調用另一個遠程WCF服務。

try 
{ 
    MyLogger.Write("check point 1 "); 
    Foo.CustomerInfo ci = new Foo.CustomerInfo(); 
    MyLogger.Write("check point 2"); 
} 
catch (Exception ex) 
{ 
    MyLogger.Write("check point 3"); 
    return; 
} 

由於事先 喬治

回答

1

一些想法:

  • 嘗試把記錄在Foo.CustomerInfo()構造
  • 在嘗試使用NETFX與end to end tracing服務跟蹤查看器(通常4.0 Tools \ SvcTraceViewer.exe)。
  • 請確保您有你在發生故障的服務回報異常的詳細信息,以便客戶可以「看到」它們(如serviceDebug includeExceptionDetailInFaults =「真」)
  • 如果您自動生成的客戶端代理,你仍然可以對其進行編輯,並在局部添加日誌記錄客戶代理類
+0

謝謝zam6ak! 「確保你有錯誤的服務返回異常細節,以便客戶端可以」看到「他們」 - 你的意思是如何修改我的課程?你的意思是修改調用遠程WCF服務Foo.CustomerInfo的類,或者你的意思是修改實現遠程WCF的類?感謝您能否提供更多細節。 – George2 2010-11-03 15:44:36

+0

@ George2看看這篇文章http://stackoverflow.com/questions/3979010/wcf-exception-handling/3979662#3979662。如果您的服務產生任何錯誤,您的客戶端可以使用FaultException(如果它是無類型的)來捕獲它們。但是,在服務行爲(在服務配置本身,而不是客戶端)中setincludeExceptionDetailInFaults =「true」之前,客戶端將無法顯示異常的詳細信息。 – zam6ak 2010-11-03 17:42:16