воскресенье, 23 ноября 2014 г.

Отладка 64-битных веб-приложений в Visual Studio

Представьте себе ситуацию, то вы разрабатываете веб-приложение, которое либо просто само по себе 64-битное (x64), либо еще и использует какие-либо x64 библиотеки. При попытке запуска отладки такого приложения вы получите сообщение об ошибке из серии BadImageFormatException.


А происходит такое по тому, что IIS Express, используемый в Visual Studio для отладки, работает как 32-битный процесс, в чем легко убедится, взглянув в Task Manager:

И если при использовании версии Vsual Studio до 2012 единственным способом было использование для отладки локального "большого" IIS, соответствующим образом настроив свойства проекта:

 (скриншот с 2012 версии, но в 2010 он практически такой же)

Начиная же с версии 2012 появилась возможность заставить Visual Studio чуть более интеллектуальной и использовать для x64 веб-проектов 64-битную версию IIS Express. Если у вас 2012 или 2013 студия, то, прежде всего проверьте, что IIS Express x64 установлен (для этого посмотрите, есть ли у вас в системе директория C:\Program Files\IIS Express\ ).
Если IIS Express x64 не установлен, то скачайте его (вот отсюда: http://www.microsoft.com/ru-ru/download/details.aspx?id=34679) и установите.

После этого остался последний шаг. Закройте Visual Studio, если вы этого до сих пор не сделали, запустите консоль с правами администратора и выполните команду, соответствующую установленной у вас версии Visual Studio.

для Visual Studio 2012:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1

для Visual Studio 2013:

reg add HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\12.0\WebProjects /v Use64BitIISExpress /t REG_DWORD /d 1

Вот и все. Теперь для отладки 64-битных веб-приложений будет использоваться 64-битная версии IIS Express, что опять же легко проверить с помощью Task Manager

Комментариев нет:

Отправить комментарий