BizTalk オーケストレーションのスコープ コンポーネントと式コンポーネントを使用して、BizTalk オーケストレーション内でエラーを処理し、ログ ファイルを別のフォルダーに書き込むにはどうすればよいでしょうか?
イベント マネージャを表示せずにエラー ファイルを書き込む方法はありますか?
BizTalk オーケストレーションのスコープ コンポーネントと式コンポーネントを使用して、BizTalk オーケストレーション内でエラーを処理し、ログ ファイルを別のフォルダーに書き込むにはどうすればよいでしょうか?
イベント マネージャを表示せずにエラー ファイルを書き込む方法はありますか?
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 は非常に一般的/適切なオプションではないからです。
幸運を。
まあ、エラーが発生した場合は、やりたいことを何でもできますが...
常にイベント ログを使用する必要があります。イベントをログファイルに書き込むことは、非常に悪い習慣です。
この記事では、BizTalk アプリからイベント ログを適切に使用する方法について説明します: イベント ログを使用した BizTalk アプリへのログイン: グッド プラクティス
常に独自のログを作成する必要はなく、カスタム ソースを作成するだけです。