Я использую файл отображения памяти для кэширования большого объема данных для приложения ASP.NET. В настоящее время я использую событие global.asax, чтобы открыть файл и получить дескриптор файла отображения памяти, который я кеширую в объекте приложения. Если я разыменую этот дескриптор на указатель и попытаюсь кэшировать указатель в моем httphandler, я получу исключение защиты, когда ссылаюсь на указатель, поэтому я кэширую дескриптор в файл сопоставления памяти и разыменую его на указатель внутри моего httphandler. Кажется, это работает нормально и довольно быстро, поэтому я предполагаю, что загрузка файла в реальную память происходит только один раз. Проблема в том, что когда нагрузка увеличивается, я запускаю несколько экземпляров httphandler одновременно, и каждый из них, кажется, разыменовывает дескриптор на свой адрес. Это приводит к довольно быстрому исчерпанию адресного пространства. Если не считать перехода на 64-битную версию, есть ли способ заставить управляемый код разделять общий кусок памяти между потоками? Есть ли лучший способ сделать то, что я пытаюсь сделать здесь?
Заранее спасибо,
Brian