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