




Насколько я понимаю, в ASP.NET 1.1 было ограничение виртуального адресного пространства в 3 ГБ, и что он никогда не был совместим с 64-битной версией, хотя 2.0 был.
Вы можете заставить IIS 6.0 запускать 32-разрядную версию (например, ASP.NET 1.1) в 64-разрядной ОС, но она будет работать в 32-разрядном режиме (вместе со всем остальным размещенным, включая сайты ASP.NET 2.0).
Ограничение памяти составляет 2 ГБ, если вы не используете переключатель / 3GB для процесса, который будет использовать 1 ГБ пространства ядра для самого процесса. Единственный способ выйти за пределы 3 ГБ с IIS - запустить 64-разрядную версию.
Поскольку ASP.Net 1.1 не поддерживает x64, вы ограничены запуском IIS 6 с использованием 32-битных рабочих процессов. Переключатель / 3GB ничего не делает в x64, но x64 изначально дает 32-битным процессам 4 ГБ вместо 2 ГБ, поэтому у вас будет больше памяти, доступной для вашего рабочего процесса.
Вам нужно будет установить AppPools на 32 бит:
cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1
Вы могли бы рассмотреть возможность настройки памяти ASP.net с 60% приложения до 80%, что мы добились определенного успеха.
<system.web>
<processModel memoryLimit = "80" />
</system.web>
Это может вызвать нагрузку на пул приложений, когда вы перейдете в диапазон от 1,2 ГБ до 1,6 ГБ.
Также следует учитывать, что большинство приложений ASP.Net 1.1 не имеют проблем при запуске в пуле приложений 2.0, что позволяет легко преобразовать 32-разрядное приложение 1.1 в 64-разрядное приложение 2.0. Для этого не требуется перекомпиляция, просто измените пул приложений на 2.0, затем переключитесь на x64, используя приведенный выше сценарий ADSUTIL.VBS (установленный на 0, а не на 1).