Ответ 1
Этот вариант теперь является частью Vs 2013/2015/2017:
Инструменты | Варианты | Проекты и решения | Веб-проекты | Использовать 64 разрядная версия IIS Express
на x64 Windows 7 Я пытаюсь получить привет world world MVC 3, работающий как 64-битный процесс (поэтому Environment.Is64BitProcess возвращает true на странице) с использованием последней бета-версии IIS Express 8.
IIS Express 7.5 - 32 бит, но IIS Express 8 поддерживает 64 бит (http://learn.iis.net/page.aspx/1266/iis-80-express-beta-readme/).
Невозможно получить 64-битную любовь.
Построение AnyCpu возвращает Is64BitProcess false, в здании x64 появляется "Попытка загрузить программу с неправильным форматом", как если бы она пыталась работать как 32-битный процесс.
Эксперименты с переименованием папок и т.д. предполагают, что " C:\Program Files (x86)\IIS Express" - это только то, что привыкает, и " C:\Program Files\IIS Express" игнорируется VS.
Как я могу заставить VS использовать хост x64 IIS Express?
Этот вариант теперь является частью Vs 2013/2015/2017:
Инструменты | Варианты | Проекты и решения | Веб-проекты | Использовать 64 разрядная версия IIS Express
От ответа Microsoft на сообщение в форуме http://visualstudio.uservoice.com -
Это работает для меня, хотя Microsoft официально не поддерживается или не поддерживается.
Майк Хардер (Microsoft) прокомментировал 31 января 2013 года 5:26 вечера
Вы можете настроить Visual Studio 2012 на использование 64-разрядной версии IIS Express установив следующий раздел реестра:
reg добавить HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects/v Use64BitIISExpress/t REG_DWORD/d 1
Однако эта функция не поддерживается и не была полностью протестирована от Microsoft. Улучшенная поддержка 64-разрядной версии IIS Express рассмотрение следующего выпуска Visual Studio.
Разрешить запуск 64-разрядного IIS Express из Visual Studio 2012
Позднее стороне, но VS2013 имеет это в настройках.
Инструменты → Параметры → Проекты и решения → Веб-проекты → Используйте 64-битную версию IIS Express...
В этом случае вы должны запустить iisexpress из командной строки,
http://learn.iis.net/page.aspx/870/running-iis-express-from-the-command-line/
Как я не уверен, когда Microsoft обновит часть интеграции VS, чтобы вы могли выбрать x64 IIS Express. Текущая интеграция, очевидно, только x86.
В реестре перейдите к HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\IISExpress\8.0\InstallPath
и измените путь к 64-разрядному iisexpress.exe.
Выполните следующие действия для запуска проекта VS2012 в проекте x64 в IIS8 Express на x64. Я запускаю службу x64 WCF. См. Ниже,
Установите x64 версию IIS Express 8.
Задайте проект для запуска x64 бит.
- Напишите файл bat и добавьте следующее. Поместите правильное неточное расположение файла applicationhost.config и правильное название проекта. Сохраните файл bat.
cd "Program Files"/IIS Express
iisexpress.exe /config:"\\companyname.com\root\User-Profiles\testusername\Documents\IISExpress\config\applicationhost.config" /site:"YourProjectName.WcfHost" /apppool:"Clr4IntegratedAppPool"
Вы можете запустить IIS Express в режиме 64 бит из командной строки, а затем использовать VS "attach to process" для отладки.
См. этот вопрос.
Получайте удовольствие.
Кажется, что создание EXE, которое ничего не делает, но запускает 64-разрядный IIS и помещает его вместо 32-разрядного iisexpress.exe
выполняет задание.
Это код С#, который я использовал для создания EXE:
using System.Diagnostics;
namespace IISExpress64
{
class Program
{
static void Main( string[] args )
{
Process.Start( @"C:\Program Files\IIS Express\iisexpress.exe", string.Join( " ", args ) );
}
}
}
Простая возможность - просто установить IIS x64 в качестве начальной программы для WEB-проекта:
Свойства проекта → Веб → Действие → Запустить программу: c:\Program Files\IIS Express\iisexpress.exe аргументы команды:/path: {yourProjectPath}/port: {yourPort}
Чтобы решить эту проблему в моей системе, я обманул - я скопировал 64-битные исполняемые файлы (в \Program Files\IIS Express\
) по 32-разрядным исполняемым файлам (в \Program Files (x86)\IIS Express\
). Visual Studio, похоже, не заботится о том, является ли это тем или иным.
Думаю, нам придется подождать и посмотреть, позволит ли финальная версия VS 2012 выбирать между 32-битным и 64-разрядным IIS Express.