2013-03-12 48 views
0

我正在使用Silverlight 5中的應用程序。我們使用WCF處理所有的網絡通信,並且它大部分工作正常。但是,我們有幾臺虛擬機用於測試應用程序失敗的位置,試圖在無限循環中自行重啓,失敗等。我添加了很多跟蹤代碼,以及大量的嘗試捕獲,並且我一直將它隔離到失敗的代碼行,但是我仍然無法從失敗中獲得實際的錯誤消息,只是碰撞。最初,它未能在此行的WCF代碼:silverlight wcf回調錯誤嘗試捕獲失敗

return await Task<List<Instance>.Factory.FromAsync(Channel.BeginGetInstance, Channel.EndGetInstance, null); 

如果它有一些東西需要與使用異步電動機/ AWAIT,我又回到了我們的舊代碼的回調。我仍然得到同樣的失敗,但現在我可以看到對WCF函數的調用成功完成,但回調的第一行上的日誌語句從不發生,所以它看起來像是在回調之前或之後的死亡。

另一個需要注意的是,它出現在Application_UnhandledException中的代碼沒有觸發,但是Application_Exit中的代碼確實運行,我將它看作日誌文件的最後一行。

我試圖設置遠程調試,但我無法連接到應用程序之前它崩潰和回收,所以也沒有幫助。

我也使用TCPView來觀察網絡流量,它看起來像通信正在兩個方向發生。

如果有人有任何其他嘗試的建議,我將不勝感激。

回答

0

我花了10天在這之前追逐我的尾巴,最終意識到我的問題。錯誤日誌代碼中有一個錯誤。它產生了一個錯誤,我只是沒有看到它。一旦我意識到並得到錯誤消息,實際的潛在錯誤在大約5分鐘內得到修復。好的教訓,儘管它有多簡單,但永遠不要假設底層代碼正在工作。