C# の STA リモート アプリケーション タイプ ライブラリのランタイム呼び出し可能ラッパーは、(スレッド モデルとアパートメントの観点から) MTA スレッド コンテキスト (.Net WebApi 要求) から呼び出されても安全ですか?
サーバー STA アプリケーションを MTA に変更する必要がありますか? それとも、RCW がこれらのメカニズムをバックグラウンドで処理しますか?
C# の STA リモート アプリケーション タイプ ライブラリのランタイム呼び出し可能ラッパーは、(スレッド モデルとアパートメントの観点から) MTA スレッド コンテキスト (.Net WebApi 要求) から呼び出されても安全ですか?
サーバー STA アプリケーションを MTA に変更する必要がありますか? それとも、RCW がこれらのメカニズムをバックグラウンドで処理しますか?
RCW は、COM プロキシの .NET プロキシです。.NET アプリケーションでどのアパートメントを使用しているかは関係ありません。RCW がマーシャリングを処理します。
また、オブジェクトはリモートであるため、アパートが互換性があるかどうかを心配する必要はありません。通信はプロセスを超えています。C++ などのネイティブ言語と環境を使用している場合は、アパートメント間で COM プロキシを共有しないように注意するだけで済みます。つまり、各アパートメントでプロキシ参照を適切にマーシャリングする必要があります。
オブジェクトがインプロセスの場合、同じアパートメントを共有することでパフォーマンスが向上しますが、プロセス間のマーシャリングとスレッド スケジューリングの遅延が最大のオーバーヘッドになります。
ただし、他のアプリケーションが使用するアパートメントを考慮する必要があります。STA を使用するアプリケーションはシングル スレッドになるため、これが ASP.NET アプリケーションのボトルネックになります。MTA を使用している場合、すべての呼び出しを同期していない場合、またはクリティカル セクションが高速である場合は、おそらくそうではありません。
申請の場合、通常、中古マンションを管理することはできません。そのアパートをどのように変更しますか? これは COM+ コンポーネントですか? これはあなたのコードですか?アパートのスイッチの準備はできていますか?