2016-10-11 86 views
0

我們如何處理BizTalk業務流程中的錯誤,並使用BizTalk業務流程中的範圍和表達式組件將日誌文件寫入單獨的文件夾?在BizTalk業務流程中的單獨文件夾中寫入錯誤日誌文件

是否有任何可能的方式來編寫錯誤文件而不查看事件管理器?

+0

謝謝大家。我找到了一個解決方案,將錯誤內容寫入txt文件中所需的位置。通過使用表達式節點,catched錯誤可以寫入文本文件中。有很多可行的方法在Log或Database .....中寫入錯誤:-) –

回答

1

BizTalk業務流程內部的異常處理非常簡單。您可以在異常塊添加到任何非原子範圍,能夠捕獲任何異常(如一般例外,System.Exception的,DivideByZeroException等..

你的問題實際上有幾個可能的答案。

第一個選項實際上是質疑你的方法 是否將錯誤寫入日誌文件確實非常必要?是否可以使用System.Diagnostics.Trace錯誤,例如使用像DebugView這樣的偵聽器? 示例在這個方法可以在這裏找到:http://dickvdbrink.github.io/c%23/2015/01/09/CSharp-Logging-using-Trace-and-DebugView.html

選項2是你可能會尋找fo R:

  1. 創建一個新的通用錯誤模式
  2. 使用C#靜態輔助類,創建架構的新實例,必要的字段,你從異常/的InnerException填寫填充它。
  3. 使用發送形狀和您所選擇的結合發送實例到一個文件夾(直接,後來指定,等...)

選項3將採取這一步:實施失敗的消息路由在你的編排中。默認情況下,它僅存在於接收端口和發送端口中,但您可以在自己的業務流程中模擬行爲。您唯一需要做的就是將錯誤寫入消息的上下文,並將ErrorType寫入「FailedMessage」。 我發現這種方法在這裏的一個例子:http://blogs.objectsharp.com/post/2006/11/01/Failed-Message-Routing-and-Failed-Orchestration-Routing-in-BizTalk-2006.aspx

選項3將是最通用的,可行的,我作爲選項的意見1最有可能要求你建在調試模式和選項2不是一個非常通用/不錯的選擇。

祝你好運。

0

好吧,如果發生錯誤的時候,你可以做任何你想要的,但...

你應該總是使用事件日誌。將事件寫入日誌文件是非常糟糕的做法。

本文介紹如何正確地從一個BizTalk應用程序中使用事件日誌:Logging In BizTalk Apps using Event Logs: Good Practices

你並不總是要創建你自己的日誌,只是一個自定義來源。