Я не уверен, что смог правильно объяснить вопрос. Но в основном я использую 32-разрядную версию Windows XP для развертывания приложения asp.net на 64-битном сервере Windows. Я предполагаю, что сервер IIS - это 64-битный процесс. Может ли приложение asp.net использовать всю память, разрешенную для 64-битного сервера? или он будет использовать максимум 4 ГБ.
Поскольку asp.net поддерживает JIT, он будет JIT-компилироваться на веб-сервере при запросах страницы. Это означает, что у него не должно возникнуть проблем с использованием всех ресурсов на вашем сервере.
Приложение .net по умолчанию будет работать в любой среде (32- или 64-разрядной). Есть возможность форсировать платформу в свойствах проекта в
Build -> Platform Target: Any CPU, x86, x64
Принудительное использование x86 заставит сборку .NET работать в 32-битном режиме даже на 64-битной машине. Параметр сборки по умолчанию - Any CPU.
Итак, пока ваш проект работает с любым процессором, он будет работать в 64-битном режиме в 64-битной операционной системе и при соответствующем доступе к памяти.
Я не эксперт по .NET, и прошло много времени с тех пор, как я работал с предварительно скомпилированными двоичными файлами, так что относитесь к этому с недоверием.
Я понимаю вроде, как бы, что-то вроде. Само приложение не сможет адресовать больший объем памяти, чем 32-битный. Однако ОС должна включать трансляцию адресов, которая позволяет этому блоку существовать где угодно в адресном пространстве ОС. Таким образом, приложение не сможет адресовать большее количество адресов, чем в противном случае, но для адресации будет доступно больше оперативной памяти.
Имеет ли это смысл?
Проще говоря, 32-разрядное приложение может обращаться к 4 ГБ ОЗУ, точка. ( Я согласен ...)
Но я уже говорил несколько лет назад, что x86 может расширяться до 64 бит, но это долгая история ...