2017-03-06 46 views
0

我用我的插件追蹤,並有我的代碼部分,在那裏我抓住一個潛在的引發WebException:轉儲完整跟蹤日誌時,CRM將無法打印出來

_traceService.Trace("This message is not logged"); 
try 
{ 
    using (var sr = new StreamReader(request.GetResponse().GetResponseStream())) 
    using (var jsonTextReader = new JsonTextReader(sr)) 
    { 
     _traceService.Trace("Success"); 
     _traceService.Trace(jsonTextReader.ToString()); 
     var ret = serializer.Deserialize<T>(jsonTextReader); 
     sw.Stop(); 
     _traceService.Trace("MadeRequest {0}", sw.Elapsed); 
     return ret; 
    } 
} 
catch (WebException e) 
{ 
    using (var sr = new StreamReader(e.Response.GetResponseStream())) 
    using (var jsonTextReader = new JsonTextReader(sr)) 
    { 
     _traceService.Trace("Error"); 
     _traceService.Trace("Error: " + e.Message); 
     throw; 
    } 
} 

如果我打的例外,我希望我的CRM跟蹤日誌在異常之前跟蹤所有消息,但是我的跟蹤日誌只有web異常。我甚至看不到「錯誤」和「錯誤:」+ e.Message語句。我怎樣才能使這個更容易調試?

另外,這段代碼與我的主插件邏輯不同,它可以改變什麼嗎?

回答

1

這不會寫入跟蹤日誌,除非異常是未處理並允許傳播。如果你可以更新到CRM 2015年SP1或更高版本,可以使用這裏

https://community.dynamics.com/crm/b/crminogic/archive/2015/04/28/plug-in-tracing-in-dynamics-crm-2015-update-1

呈現在我的worflow actvities的解決方案,我已經完全避免了跟蹤和處理每一個例外,返回的結果返回給調用工作流/行動來處理。插件是一個不同的問題,您的方案的解決方案可能是拋出異常。