0

BizTalk オーケストレーションのスコープ コンポーネントと式コンポーネントを使用して、BizTalk オーケストレーション内でエラーを処理し、ログ ファイルを別のフォルダーに書き込むにはどうすればよいでしょうか?

イベント マネージャを表示せずにエラー ファイルを書き込む方法はありますか?

4

2 に答える 2

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# 静的ヘルパー クラスを使用して、スキーマの新しいインスタンスを作成し、例外/内部例外から入力する必要なフィールドを入力します。
  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 は非常に一般的/適切なオプションではないからです。

幸運を。

于 2016-10-11T21:18:51.687 に答える
0

まあ、エラーが発生した場合は、やりたいことを何でもできますが...

常にイベント ログを使用する必要があります。イベントをログファイルに書き込むことは、非常に悪い習慣です。

この記事では、BizTalk アプリからイベント ログを適切に使用する方法について説明します: イベント ログを使用した BizTalk アプリへのログイン: グッド プラクティス

常に独自のログを作成する必要はなく、カスタム ソースを作成するだけです。

于 2016-10-14T20:31:58.600 に答える