0

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

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

4

2 回答 2

1

BizTalk 业务流程中的异常处理非常简单。您可以将异常块添加到任何非原子范围,以便能够捕获任何异常(例如,General Exception、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# 静态帮助器类,创建模式的新实例,使用您从异常/内部异常中填写的必要字段填充它。
  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 不是一个非常通用/好的选项。

祝你好运。

于 2016-10-11T21:18:51.687 回答
0

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

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

本文介绍如何正确使用 BizTalk 应用程序中的事件日志:使用事件日志登录 BizTalk 应用程序:良好做法

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

于 2016-10-14T20:31:58.600 回答