背景:
現在、C# で Dynamics AX 2009 Business Connector を使用しています。現在のプロジェクトでは、複数の AOS サーバーに接続する必要があります。理想的には、すべてを並行して実行しますが、順次実行することも適切です。1つのサーバー(任意のサーバー)に正常に接続できますが、別のサーバー(または同じサーバーでも、指定された名前ではなくデフォルトとして接続するためにLogonSystemChangedException
使用しているサーバー)に接続しようとすると、常にヒットします。null
私Logoff
とDispose
以前の BC で、それを参照する変数を null に設定し、スレッドを 30 秒間スリープ状態にして、呼び出した場合でも、このエラーが発生します。GC.Collect()
(申し訳ありませんが、絶望的な時代です)次に、新しい変数でAXの別のインスタンスを完全に見て、まったく新しいBCを作成します。これは、MS のコードには、プロセスの有効期間を通じてこの情報を永続化する舞台裏の静的オブジェクトがあることを示唆しています。
提案された解決策が見つかりました:
ここで、AOS インスタンスの正しいフォーマットとともに LogonAs を使用するための推奨される修正を見つけました: http://asonofmartha.blogspot.co.uk/2010/06/ax-net-business-connector-how-to-open.html -しかし、これを試してみましたが、うまくいきませんでした。
これまでに見つけた唯一の方法は、2 番目の接続用に 2 番目のプロセスを作成することですが、これは不快な解決策です。
理由: 複数の AOS に接続する理由は、特定の AX インスタンスに接続し、そのインスタンス上のすべての AOS サーバーをループしてから、すべてのクライアントとその SPIDS のリストを返す CLR テーブル関数を作成しているためです (これは、そのセッションの AOS に接続されている)。これは、データベースでブロックが発生した場合に、監視ソフトウェアが AX ユーザー セッションに関する情報を返せるようにするためです。
質問: 同じプロセス内で AX .Net Business Connector を使用して複数の AOS に接続する方法はありますか (並列が不可能な場合は順次)?