0

私は現在問題に直面していて、それを説明できないようです。私のC#ソリューションには、3つのプロジェクトA、B、Cがあります。AとBの両方が、静的リストコンテナーを含むプロジェクトCを参照しています。プロジェクトAがコンテナに追加すると、驚くべきことにプロジェクトBはコンテナ内のコンテンツを見つけることができません。これが起こっている理由について何か提案はありますか?

4

1 に答える 1

2

staticアイテムは同じAppDomain内でのみ共有されます。AとBが別々のスペース(2つの異なるWebサイト、コンソールアプリ、WinFormsなど)で実行されている場合、それらは同じメモリスペースを共有しません。

2つの異なるプロセス間でデータを共有する必要がある場合は、それを行うための別の方法を考え出す必要があります。いくつかのオプションは次のとおりです。

  • データベースを使用する
  • ファイルを使用する
  • 共有データをホストするWebサービスを作成します
  • データをホストするWindowsサービスを作成します

それぞれに、開発時間/複雑さ/保守性などの長所/短所があります。

それらが2つの異なるWebサイトである場合、同じAppPoolを使用するように設定でき、静的変数を共有する可能性があります(ただし、これまで試したことはありません)。

編集:さらなる調査に基づいて、2つのWebアプリは、AppPoolを共有している場合でも、異なるAppDomainを持ちます。(AppPoolは複数の独立したAppDomainをホストできます)。

于 2013-03-07T17:05:13.700 に答える