0

Let's think about an orchestration. The main activities takes place within a scope shape with 2 associated Catch Exception shapes: 1 for System.Exception and 1 General Exception. This orchestration makes use of a "helper" C# class library and the BizTalk scope/catch catches exceptions that are thrown within the library, as well as unhandled exceptions that occur within them.

The issue that I'm wondering about that I'm able to create is this: Say a version of the helper library gets published and suddenly there is a method missing that was previously there and the orchestration tries to call it. Inevitably a MissingMethodException is thrown, which seems to happen as soon as the Scope shape is reached.

The MissingMethodException is not caught by the orchestration and therefore the message is suspended. I realize that with proper testing this should never happen, but I'm just trying to cover all the bases should they happen (and really just out of curiosity).

Is there a way to catch these exceptions, or since it seems to happen at a level before the scope is called?

4

2 に答える 2

2

私はそれを考え出した。別のスコープでもヘルパー ライブラリを利用していた形状を含むスコープ全体をラップする必要がありました。.dll (ヘルパー クラス ライブラリ用) は、スコープに到達するとすぐに読み込まれ、評価されているようです。

添付の画像を見ると、私のヘルパー ライブラリは "ValidateWrapper" 式の形で使用されていますが、MissingMethodException(ヘルパー クラス ライブラリにメソッドが見つからないため) が呼び出される前に、オーケストレーションはそこに到達することさえできませんでした。 「GeneralScope」の形状は をキャッチできませんでしたMissingMethodExceptionが、GeneralScope を別のスコープでラップしたMissingMethodExceptionところ、 がそれでキャッチされて処理できるようになりました。

これはすべて、BizTalk 管理コンソールを使用してヘルパー クラス リソースを更新したために発生したもので、コンパイラはメソッドの欠落を警告できませんでした。

ここに画像の説明を入力

于 2013-08-21T23:00:13.843 に答える
1

BizTalk 内のオーケストレーションの例外は、.NET と同じ方法で処理されることを知っておく必要があります。例外は、常に基本クラス System.Exception から継承されます。

たとえば、カスタムの MissingMethodException (System.Exception から継承) があるとします。その場合、MissingMethodException (特定のデータを取得するため) または System.Exception をキャッチできます。特定の MissingMethodException 例外ハンドラーがない場合、どちらも System.Exception 例外ハンドラーをトリガーします。

詳細については、http://www.codeproject.com/Articles/125470/Exception-Handling-for-C-Beginnersを読むことをお勧めします

BizTalk オーケストレーションは、その部分の .NET の他の例外と同じです。

お役に立てれば。

于 2013-08-20T20:02:08.733 に答える