2

STA Visual Basic 6.0 COM オブジェクトを呼び出す WCF サービスがあります。サービスを使用しているクライアントが 1 つだけの場合はすべて正常に機能しますが、同時ユーザーがサービスを呼び出し始めるとすぐに、COM オブジェクトのメソッドの 1 つを呼び出すときにあらゆる種類のランダム エラーが発生して困っています。

最初に、WCF 操作から STA COM オブジェクトを呼び出すという記事の助けを借りて、STAOperationBehavior 属性のサポートを追加することで、この問題を修正しました。

それは大いに役立ち、しばらくの間、すべてがうまく機能しているように見えましたが、複数のユーザーがサービスを呼び出しているときに、特定のサーバーで System.AccessViolationException エラーが発生し始めました。

これはおそらくスレッドの問題であり、Web サービスでミューテックスまたはインスタンス コンテキストを使用する必要があることを読みました。

同時ユーザーが WCF サービスで STA COM オブジェクトを問題なく使用できるようにするためのベスト プラクティスは何ですか?

4

1 に答える 1

3

オブジェクトが複数のユーザーによって同時に使用されるように設計されていない場合、複数のユーザーがそのオブジェクトを使用できるようにすることはできません。

于 2012-02-22T19:18:53.170 に答える