2011-03-08 4 views
0

XMLファイルを監視する受信メッセージと受信ポートを設定しました。私はのBizTalkを展開する場合BizTalkオーケストレーションを使用して、ディレクトリに新しいxmlファイルがある場合にxmlを読み取るための.NETクラスライブラリを呼び出します。

System.Diagnostics.Process.Start 
     (@"C:\TEMP\XmlReader\XmlReader\bin\Release\XmlReader.exe"); 

を使用して.NETクラスライブラリを実行する 私も追加表現の形は、とすぐに新しいファイルが受信場所で受信されますよう、ファイルが消えて、何も起こりません。私はファイルが消えて場所を送信するために移動しない受信ポートと送信ポートを持つ他のオーケストレーションプロジェクトを持っています

+0

受信場所とオーケストレーションのトラッキングをオンにし、中断したサービスインスタンスとイベントログを確認します。これにより、発生したことについてのヒントが得られます。 XMLReaderは独自のクラスライブラリですか?もしそうなら、署名してGACも署名する必要があります。 – StuartLC

+0

xmlreader.exeは、単にxmlコンテンツを読み取ります。 xmlreaderは署名されましたが、GACは使用しません – developer

答えて

1

私はあなたのロジックに従っているのか分かりません。ただし、オーケストレーションと受信ポートによって発行されたメッセージの間でサブスクリプションを正しくセットアップしたと仮定します。 オーケストレーションがアクティブ化されるまでに、元のファイルシステムXMLは永遠に失われました。実際には、受信場所が有効になってそれを消費すると消えてしまいます。 したがって、オーケストレーションから元のXMLファイルを手動でファイルシステムから読み取ろうとすると、成功しません。

BizTalkにはいくつかの落とし穴があります。疑わしいときは、増分アプローチに従います。

  1. 管理コンソールから直接受信ポートと受信場所を作成/有効にします(今のところVisualStudioを忘れてください)。
  2. XMLで渡す
  3. 管理コンソールを使用して、作成されたメッセージとそのステータスが何かを確認します。
  4. System.Diagnostics.Debug.WriteLine()

    文を含んでいるオーケストレーションを作成し、受信ポートにそれをサブスクライブします。

  5. メッセージをドロップし、DebugViewを使用して、WriteLineメソッド呼び出しの出力を確認します。
0

私が誤解していない場合は、カスタムxmlreader.exeを使用してXmlドキュメントを読み取り、BizTalkオーケストレーションに送信しています。これはまさにBizTalk受信ポート+受信場所(+ XmlPipeline)があなたのために行うものです。

あなたの問題は、xmlreader.exeとBizTalk受信ポート+受信場所が相互に作用しているように見えます。

受信メッセージに対して特別な処理を行う必要がある場合は、パイプラインコンポーネントを作成する必要があります。

BizTalk管理コンソールを確認してください。オーケストレーションが受信しなかったため、受信したすべてのメッセージが中断されています。

関連する問題