我们如何处理BizTalk业务流程中的错误,并使用BizTalk业务流程中的范围和表达式组件将日志文件写入单独的文件夹中?
有没有办法在不查看事件管理器的情况下编写错误文件?
答案 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是您可能正在寻找的:
选项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
您并不总是需要创建自己的日志,只需创建自定义源。