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



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

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

BizTalk编排内部的异常处理非常简单。你可以将异常块添加到任何非原子作用域,以便能够捕获任何异常(例如,General exception, System。异常,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#静态助手类,创建模式的新实例,用您从exception/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很可能需要你在DEBUG模式下构建,而选项2不是一个非常通用/好的选项。

好运。

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

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

这篇文章描述了如何正确使用BizTalk应用程序中的事件日志:使用事件日志登录BizTalk应用程序:良好实践

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

最新更新