他の6つのクラスライブラリプロジェクトでasp.netアプリケーションを使用しています。メインのクラスライブラリプロジェクトの1つで、いくつかの静的DBテーブルをキャッシュします。Webdev.webserver40.exeは約1.5GBに達し、「システムのメモリ不足例外」をスローします。32ビットマシンではプロセスサイズが最大2GBに制限されていることは知っていますが、開発者のマシンは64ビットであり、64ビットに制限はありません。OK、64ビットマシンを使用していても、Asp.netアプリケーションは32ビットで実行されるとおっしゃっています。したがって、私は例外を取得しています。しかし、その問題を解決するために何ができますか?
- 構成マネージャーを開き、すべてのクラスライブラリをx64として変更しようとしましたが、メインのWebサイトプロジェクトを変更できません。そのため、32ビットのWebサイトで64個の参照が認識されていません。
メモリにキャッシュする代わりに、ローカルDBまたは他のオプションを実行する必要があると言わないでください:)わかりました、これらも他のオプションですが、メモリ内にそれとにかくあるかどうかを知りたいです。 2GB以上のキャッシュもあります。
PS、[デバッグ]タブの[VSホスティングプロセスを有効にする]オプションとは何ですか。それは私の問題に影響を与えますか?チェックとチェックを外してみましたが、何も変わりませんでした。確かにそれをチェックする方がうまくいくように見えますが、それでも例外があります。
編集1:その投稿を見つけたので、64ビットOSで32ビットアプリケーションを実行している場合は、最大2800mbが必要であることがわかります。プロセスサイズですが、なぜそれが許可されず、約1500mbで例外がスローされます。
編集2: msdnで提案されているように、キャッシュを行うクラスライブラリのapp.configとweb.configにそのコードを追加しようとしましたが、フレームワーク4.5のみと表示されていますが、4.0を使用しています。4.0にも同様のハックがありますか?前回のリリースではないのに4.5をインストールして使用を開始する必要があるかどうかわからないためです。
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
ご協力いただきありがとうございます。よろしく。