在BizTalk业务流程中的单独文件夹中写入错误日志文件

时间:2016-10-11 17:50:24

标签: error-handling biztalk error-log biztalk-orchestrations

我们如何处理BizTalk业务流程中的错误,并使用BizTalk业务流程中的范围和表达式组件将日志文件写入单独的文件夹中?

有没有办法在不查看事件管理器的情况下编写错误文件?

2 个答案:

答案 0 :(得分:1)

BizTalk业务流程中的异常处理非常简单。您可以将异常块添加到任何非原子范围,以便能够捕获任何异常(例如,常规异常,System.Exception,DivideByZeroException等...

您的问题实际上有几个可能的答案。

第一种选择实际上是质疑你的方法。 是否真的有必要将错误写入日志文件?是否可以使用像DebugView这样的侦听器来处理System.Diagnostics.Trace错误? 可以在此处找到有关此方法的示例:http://dickvdbrink.github.io/c%23/2015/01/09/CSharp-Logging-using-Trace-and-DebugView.html

选项2是您可能正在寻找的:

  1. 创建新的通用错误架构
  2. 使用C#static helper类,创建一个新的模式实例,并使用从异常/ innerexception中填写的必要字段填充它。
  3. 使用发送形状和您选择的绑定(直接,稍后指定等)将实例发送到文件夹。
  4. 选项3将更进一步:在业务流程中实施失败的消息路由。默认情况下,它仅存在于接收端口和发送端口中,但您可以模仿自己的业务流程中的行为。您唯一需要做的就是将错误写入消息的上下文,将ErrorType写入" FailedMessage"。 我在这里找到了这种方法的一个例子:http://blogs.objectsharp.com/post/2006/11/01/Failed-Message-Routing-and-Failed-Orchestration-Routing-in-BizTalk-2006.aspx

    选项3在我看来是最通用和可行的,因为选项1很可能要求你建立DEBUG模式而选项2不是一个非常通用/好的选择。

    祝你好运。

答案 1 :(得分:0)

好吧,如果发生错误,你可以做任何你想要的事情,但是......

您应始终使用事件日志。将事件写入日志文件是非常糟糕的做法。

本文介绍如何从BizTalk应用程序正确使用事件日志:Logging In BizTalk Apps using Event Logs: Good Practices

您并不总是需要创建自己的日志,只需创建自定义源。