В настоящее время в IIS Express настроены сайты для каждого приложения, над которым я работал. Каждый из них настроен на локальный запуск через порты 80 и 443, но имеет отдельные привязки (http://site1/ и http://site2/), причем эти псевдонимы указывают локально из моего файла hosts.
Я могу запустить эти сайты одновременно при запуске IIS Express напрямую (из командной строки), но позволить VS2010 запускать их при неудачной отладке. Первый сайт запускается и отлаживается, как и должно, но второй запускаемый сайт выдает ошибку: «Невозможно запустить веб-сервер IIS Express. Порт 80 используется».
Вот конфигурация IIS Express, которую я использую (слегка измененная для удаления имен проектов):
<site name="Site1" id="1" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="Site1Path" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:Site1" />
<binding protocol="https" bindingInformation="*:443:Site1" />
</bindings>
</site>
<site name="Site2" id="2" serverAutoStart="true">
<application path="/" applicationPool="Clr4IntegratedAppPool">
<virtualDirectory path="/" physicalPath="Site2Path" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:Site2" />
<binding protocol="https" bindingInformation="*:443:Site2" />
</bindings>
</site>
Может показаться, что VS проверяет все, что в данный момент прослушивает порт 80, тогда как IIS Express таким образом не ограничивается. Я все еще могу подключить VS к экземплярам IIS Express, запущенным из командной строки, но я бы предпочел, чтобы VS управлял ими.
Является ли это ограничением того, как VS2010 обрабатывает IIS Express, и если да, то каков хороший обходной путь?