Использование пользовательских доменов с IIS Express

304

Традиционно я использую собственные домены с моим сервером разработки localhost. Что-то вроде:

dev.example.com
dev.api.example.com

Это дало мне большую гибкость при работе с внешними API, такими как Facebook. В прошлом это прекрасно работало со встроенным Visual Studio Development Server, потому что все, что мне нужно было сделать, это добавить CNAME к указанным DNS-записям 127.0.0.1.

Однако я не смог заставить это работать с IIS Express. Кажется, все, что я пробовал, провалилось. Я даже добавил правильную конфигурацию XML в applicationHost.configфайл для IIS Express, но, похоже, он не распознает записи как действительные, как при истинной установке IIS.

<binding protocol="http" bindingInformation="*:1288:dev.example.com" />

Всякий раз, когда я вхожу в эту строку и пытаюсь запросить, http://dev.example.com:1288я получаю следующее сообщение:

Неверный запрос - неверное имя хоста

Кто-нибудь знает, если я что-то упускаю очевидное? Или команде IIS Express действительно не хватило предвидения, чтобы увидеть этот тип использования?

Ник Берарди
источник
Убедитесь, что для атрибута applicationPool узла приложения установлено значение «Clr2IntegratedAppPool» или «Clr4IntegratedAppPool». Я получил ошибку неверного имени хоста, которую вы видите при использовании «Clr2ClassicAppPool» или «Clr4ClassicAppPool».
Нил Монро
перепутано - записи CNAME не принимают IP-адреса, но вместо них используют другие имена хостов. Вы имели в виду запись?
Скотт Коутс
1
У меня было много проблем с этим, и было гораздо проще использовать IIS вместо IIS Express
user0b101010
Я только что столкнулся с этим. Я надеялся, что он просто посмотрит на номер порта и проигнорирует домен. Нет такой удачи. Хотел бы я, чтобы я мог включить "принять все" в порту ....
Брейди Мориц
Голосуйте сейчас! Я добавил предложение UserVoice: visualstudio.uservoice.com/forums/121579-visual-studio/…
Люк Пуплетт

Ответы:

367

Это то, что сработало для меня (Обновлено для VS 2013, см. Историю изменений за 2010 год, для VS 2015 см .: https://stackoverflow.com/a/32744234/218971 ):

  1. Щелкните правой кнопкой мыши проект веб-приложения ▶ PropertiesWeb, затем настройте Serversраздел следующим образом:
    • Выберите IIS Express ▼из выпадающего
    • URL проекта: http://localhost
    • Переопределить корневой URL-адрес приложения: http://dev.example.com
    • Нажмите Create Virtual Directory(если вы получили ошибку здесь, вам может потребоваться отключить IIS 5/6/7/8, изменить IIS Default Siteна что угодно, кроме порта :80, убедитесь, что Skype не использует порт 80 и т. Д.)
  2. Опционально: установите Start URL вhttp://dev.example.com
  3. Откройте %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config(Windows XP, Vista и 7) и измените определение сайта в <sites>блоке конфигурации так, чтобы оно соответствовало следующему:

    <site name="DevExample" id="997005936">
        <application path="/" applicationPool="Clr2IntegratedAppPool">
            <virtualDirectory
                path="/"
                physicalPath="C:\path\to\application\root" />
        </application>
        <bindings>
            <binding
                protocol="http"
                bindingInformation=":80:dev.example.com" />
        </bindings>
        <applicationDefaults applicationPool="Clr2IntegratedAppPool" />
    </site>
    
  4. Если запущен MVC: убедитесь, что для applicationPoolнего установлен один из «встроенных» параметров (например, «Clr2IntegratedAppPool»).

  5. Открой свой hostsфайл и добавьте строку 127.0.0.1 dev.example.com.
  6. ► Start ваше приложение!

Несколько замечательных советов из комментариев:

  • Вам может потребоваться запустить Visual Studio от имени администратора.
  • Если вы хотите, чтобы другие разработчики видели ваш IIS, запустите netsh http add urlacl url=http://dev.example.com:80/ user=everyone
  • Если вы хотите, чтобы сайт разрешил для всех хостов установить bindingInformation="*:80:". Используйте любой порт, который вы хотите, 80 просто удобно.
Дэвид Мердок
источник
12
Это именно то, что я сделал, собирался написать это, но вы опередили меня :-) В качестве примечания: если вы хотите, чтобы другие разработчики увидели ваш IIS, вы можете сделать что-то вроде "netsh http add urlacl url = dev.example.com:80 user = all "
EBarr
6
Кроме того, если вы хотите, чтобы сайт разрешался для всех хостов, вы можете использовать: bindingInformation = "*: 80:" Я использую это, чтобы localtunnel.com работал.
Ланс Фишер
17
Я получаю ошибку «Отказано в доступе». Запуск VS 2012 в качестве администратора исправил это.
xanadont
3
какая версия IIS Express это? Я использую VS2012 (который я считаю IIS Express 8.0), и когда я нажимаю радиокнопку «Использовать локальный сервер IIS» в области «Серверы» на странице веб-свойств, установите флажок «Использовать IIS Express» и попробуйте положить в « mydev.example.com », а затем нажать кнопку «Создать виртуальный каталог», я получаю эту ошибку «Невозможно создать виртуальный каталог. Не удается создать веб-сайт mydev.example.com». Вы должны указать "localhost" для имени сервера.
Майкл Маккарти
12
Это сложно. Нужно изменить настройки в нескольких разных местах. Это легко сделать настоящий беспорядок. Неужели нет более простого способа?
Андерсон
151

Для Visual Studio 2015 применимы действия, описанные выше, но applicationhost.configфайл находится в новом месте. В вашей папке «Solution» следуйте по пути, это сбивает с толку, если вы обновились, и applicationhost.configна вашем компьютере будет две версии .

\.vs\config

В этой папке вы увидите ваш файл applicationhost.config

В качестве альтернативы вы можете просто найти в папке вашего решения файл .config и найти его таким образом.

Я лично использовал следующую конфигурацию:

введите описание изображения здесь

Со следующим в моем файле hosts:

127.0.0.1       jam.net
127.0.0.1       www.jam.net

И следующее в моем файле applicationhost.config:

<site name="JBN.Site" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\Dev\Jam\shoppingcart\src\Web\JBN.Site" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:49707:" />
            <binding protocol="http" bindingInformation="*:49707:localhost" /> 
    </bindings>
</site>

Не забудьте запустить свой экземпляр Visual Studio 2015 в качестве администратора! Если вы не хотите делать это каждый раз, я рекомендую это:

Как запустить Visual Studio от имени администратора по умолчанию

Надеюсь, это кому-нибудь поможет, у меня возникли проблемы при обновлении до visual studio 2015, и я понял, что ни одна из моих конфигураций не была перенесена.

njfife
источник
9
Важной частью является добавление второй *:49707:привязки вместо замены по умолчанию, *:49707:localhostкак предлагается во многих других ответах. И вы должны запускать VS как администратор, действительно (так!). Спасибо.
fracz
3
Вы также можете использовать URL-адрес, например, http://jam.127.0.0.1.xip.io/если вы не хотите изменять свой файл hosts. Кроме того, никакие соавторы не должны будут изменять своих. См xip.io .
Зак Мартин,
1
Я думаю, что стоит отметить, что папка ".vs" скрыта и должна быть сначала видимой
Разочаровано
3
Я подтвердил, что это работает и в Visual Studio 2017. Интересно, что мне не понадобились оба элемента <binding> (только первый без «localhost»). Visual Studio, однако, безусловно, должен работать от имени администратора, что
Лорен Полсен,
1
Я просто хотел бы, чтобы для тех из нас, кому не разрешено что-либо административно управлять, был способ сделать это. Работодатели / клиенты, которые полностью запрещают привилегии администратора, не задумываясь о том, как они могут безопасно включить это, невероятно близоруки.
Стив Петтифер
44

При использовании Visual Studio 2012 с IIS Express изменение существующей привязки не работает постоянно. (Это может работать до тех пор, пока вы не закроете VS, но после этого все будет действительно запутано.)

Ключом является сохранение существующей привязки localhost и добавление новой привязки после нее.

Если вы не работаете в качестве администратора, вам также нужно будет запускать netsh add urlacl(чтобы дать себе разрешение на запуск сайта, не являющегося локальным хостом, как обычного пользователя).

Если вы хотите разрешить любое имя хоста, полный процесс выглядит следующим образом:

  1. Создайте свое веб-приложение и выясните, какой порт оно использует (см. Свойства проекта, вкладка «Веб», URL-адрес проекта).
  2. В командной строке администратора выполните следующие команды (заменив номер порта номером порта, который вы определили в # 1):

    netsh http add urlacl url="http://*:portnumber/" user=everyone
    netsh http add urlacl url="http://localhost:portnumber/" user=everyone
    

Вы также можете использовать свое имя пользователя (ДОМЕН \ ПОЛЬЗОВАТЕЛЬ) вместо всех для повышения безопасности.

  1. Откройте applicationhost.config (обычно в папке Мои документы \ IIS Express \ config) и найдите элемент с номером вашего порта.
  2. Добавьте еще одну привязку с нужным именем хоста (в данном случае *). Например:

    <site name="MvcApplication1" id="2">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\sites\MvcApplication1" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:12853:localhost" />
            <binding protocol="http" bindingInformation="*:12853:*" />
        </bindings>
    </site>
    

Обратите внимание, что если вы хотите открыть все имена хостов (*), вам понадобятся две команды netsh (одна для * и одна для localhost). Если вы хотите открыть только определенное имя хоста, вам не нужна вторая команда netsh (localhost); достаточно только одного с вашим конкретным именем хоста.

dmatson
источник
Сделал то же самое (1-й подход), когда переходил на mycustomhost: myportnr, я получал «Служба недоступна». VS2012. Я не могу попробовать 2-й, так как в разделе «Мои документы» нет IIS Express, и файл applicationhost.config, который я нашел в каталоге c: \ Program
Files
2
С VS2013 я нахожу, что эта конфигурация работает только тогда, когда я запускаюсь от имени администратора! (Работая от имени не-администратора, IIS Express, похоже, игнорирует 2-ую привязку - если я открываю его пользовательский интерфейс с помощью значка уведомления, IIS показывает мой сайт как работающий, но показывает только первую привязку, и я могу использовать только localhost ... Если Я работаю как администратор, он показывает обе привязки в пользовательском интерфейсе, и обе работают.) Я добавил urlacls с помощью netsh, но, похоже, это не имеет значения - IIS Express, похоже, даже не пытается связать что-либо кроме localhost если он не повышен.
Ян Гриффитс
Добавление записи с *решенным «Сервисом недоступно» это для меня.
Джерон
Как насчет сценария, который вам нужен для использования HTTPS на порту 443?
Киксока
@ Kixoka Я пытаюсь запустить HTTPS. Мне удалось заставить его работать, но браузер жалуется, что сертификат не соответствует домену. Я прошёл мимо этого, но все ресурсы не удалось загрузить, поэтому никаких изображений, сценариев или CSS.
Prime By Design
24

Неверное имя хоста указывает, что фактический сайт, настроенный вами в файле конфигурации IIS Express, (скорее всего) не работает. IIS Express не имеет такой модели процессов, как IIS.


Чтобы ваш сайт работал, он должен быть запущен явно (либо путем открытия и доступа из веб-матрицы, либо из командной строки, вызывая iisexpress.exe (из каталога установки) с параметром / site.


В общем, шаги, позволяющие использовать полные DNS-имена для локального доступа: Давайте воспользуемся вашим примером DNS-имени dev.example.com.

  1. отредактируйте файл% windows% \ system32 \ drivers \ etc \ hosts для сопоставления dev.example.com с 127.0.0.1 (требуются права администратора). Если вы управляете DNS-сервером (как в случае Ника), тогда DNS-записи достаточно, так как этот шаг не нужен.
  2. Если вы подключаетесь к Интернету через прокси-сервер, убедитесь, что dev.example.com не будет перенаправлен на прокси-сервер (вы должны добавить его в список исключений в браузере (для IE это будут Сервис / Свойства обозревателя / Подключения / Настройки Lan, затем перейдите на Proxy Server / Advanced и добавьте dev.example.com в список исключений.
  3. Настройте привязку IIS Express для своего сайта (например, Site1), включив в него dev.example.com. Административная привилегия будет необходима для использования привязки. В качестве альтернативы, одноразовое резервирование URL может быть выполнено с помощью http.sys с использованием

    netsh http add urlacl url=http://dev.example.com:<port>/ user=<user_name>

  4. запустить iisexpress /site:Site1или открыть Site1 в WebMatrix

Яро Дунайски
источник
2
Привет, Джаро, спасибо за помощь, но в моем DNS установлен 127.0.0.1, а не в файле hosts, так что все разработчики имеют одинаковый доступ. Во-вторых, я не могу заставить его начать отладку в VS, если привязка не установлена ​​как «*: 1234: localhost», что является абсолютно бесполезной настройкой, потому что она привязана ко всем IP-адресам на моей машине, но принимает только заголовки хостов «localhost». ». Почему они просто не сделали «127.0.0.1:1234:» и избежали всего этого дерьма. Заголовки хоста не нужны, если разрешен IP-адрес и порт. И бегать от имени администратора - просто огромная боль в заднице для большой команды. Что такое катастрофа IIS Express.
Ник Берарди
1
Также просто как ссылка Bad Request - Invalid Hostnameозначает, что имя хоста, которое я пытаюсь использовать, не может быть разрешено, потому что команда IIS Express в своей бесконечной мудрости решила специально назвать localhost как единственный заголовок хоста, который будет работать. И VS не позволит вам запустить его любым другим способом, кроме "*: 1234: localhost"
Ник Берарди
2
Я слышал вас по вопросу 127.0.0.1. «Локальный хост» в привязке определенно является проблемой, поскольку он не включает трафик для 127.0.0.1 . Дизайн ограничен сегодняшним контрактом http.sys (обработчик протокола http), который распознает только «localhost» для неадминистративного использования. Требование только для администратора может быть смягчено путем однократного резервирования URL с помощью http.sys (обновит информацию выше). Пожалуйста, дайте мне знать, вы точно используете с Visual Studio (это VS2010 с SP1 Beta?). Попробуем еще немного поработать над этим и (надеюсь) решить проблему.
Джаро Дунайски
обратите внимание - если вы видите netsh.exe ошибку 87, параметр неверен - возможно, вы указали путь URI (/) после имени вашего хоста.
Тим Ловелл-Смит
19

На моей установке WebMatrix IIS Express изменение с "*:80:localhost"на "*:80:custom.hostname"не сработало («Плохое имя хоста», даже при правильном отображении etc \ hosts), но сработало - и ни один из дополнительных шагов, требуемых другими ответами здесь , "*:80:" не выполнялся . Обратите внимание, что "*:80:*"это не будет делать; оставь вторую звездочку.

rymo
источник
3
uuuum, "*:80:*"у меня так получилось, но потом я перезапустил свой компьютер, и он внезапно не заработал, пока я не сменил его, "*:80:"и все было хорошо! Спасибо.
CWSpear
2
В заключение!! Также выполнил все шаги в другом месте, и удаление * в конце сделало это, спасибо!
Чарльз Филипп
Просто здесь, чтобы сказать, что это сработало для меня. Я попробовал принятый ответ и вернул все изменения к тому, что вы сказали, и все прекрасно работает. Я использую VS2013 Update4.
Джейсон Вилчак,
Кажется, это работает отлично. При использовании VS2017 я не уверен, что поместить в URL-адрес проекта, чтобы он записал это в файл applicationhost.config? Можно ли установить через VS IDE?
Джим
8

Я пытался интегрировать общедоступный IP-адрес в свой рабочий процесс, и эти ответы не помогли (мне нравится использовать IDE в качестве IDE). Но вышесказанное привело меня к решению (примерно через 2 часа удара головой об стену, чтобы интегрировать его с Visual Studio 2012 / Windows 8) вот что в итоге сработало для меня.

applicationhost.config, сгенерированный VisualStudio подC:\Users\usr\Documents\IISExpress\config

    <site name="MySite" id="1">
        <application path="/" applicationPool="Clr4IntegratedAppPool">
            <virtualDirectory path="/" physicalPath="C:\Users\usr\Documents\Visual Studio 2012\Projects\MySite" />
        </application>
        <bindings>
            <binding protocol="http" bindingInformation="*:8081:localhost" />
            <binding protocol="http" bindingInformation="*:8082:localhost" />
            <binding protocol="http" bindingInformation="*:8083:192.168.2.102" />
        </bindings>
    </site>
  • Настройте IISExpress для запуска Administratorтак, чтобы он мог связываться с внешними адресами (не локальным хостом)
  • Запустите Visual Stuio как, Administratorчтобы он мог запустить процесс как администратор, разрешив привязку.

В результате вы можете просмотреть 192.168.2.102в моем случае и проверить (например, в эмуляторе Android). Я действительно надеюсь, что это поможет кому-то еще, поскольку это определенно было раздражающим процессом для меня.

Очевидно, это функция безопасности, которую я бы хотел отключить.

Дэниел Б. Чепмен
источник
8

Как и Джесса Флинт выше , я не хотел вручную редактировать .vs \ config \ applicationhost.config, потому что я хотел, чтобы изменения сохранялись в системе контроля версий . Я также не хотел иметь отдельный пакетный файл. Я использую VS 2015 .

Свойства проекта → События сборки → Командная строка события перед сборкой: Снимок экрана свойств проекта


::The following configures IIS Express to bind to any address at the specified port

::remove binding if it already exists
"%programfiles%\IIS Express\appcmd.exe" set site "MySolution.Web" /-bindings.[protocol='http',bindingInformation='*:1167:'] /apphostconfig:"$(SolutionDir).vs\config\applicationhost.config"

::add the binding
"%programfiles%\IIS Express\appcmd.exe" set site "MySolution.Web" /+bindings.[protocol='http',bindingInformation='*:1167:'] /apphostconfig:"$(SolutionDir).vs\config\applicationhost.config"

Просто убедитесь, что вы изменили номер порта на желаемый порт.

Джон
источник
Одно незначительное дополнение здесь. Обязательно создайте правила для открытия этого порта в брандмауэре Windows. Тогда это сработало как шарм!
Питер М
Мне нравится ваш ответ, потому что редактирование .vs \ config \ applicationhost.config невозможно, когда несколько разработчиков запускают IIS Express на своих компьютерах. Спасибо!
Колин
6

Голос с положительным голосом действителен ... и эта информация мне очень помогла. Я знаю, что эта тема обсуждалась ранее, но я хотел добавить некоторые дополнительные материалы. Люди говорят, что вы должны «вручную отредактировать» файл application.config в каталоге Users IISExpress / Config. Это было большой проблемой для меня, потому что я хотел распространить конфигурацию через систему управления исходным кодом среди различных разработчиков.

Я обнаружил, что вы можете автоматизировать обновление этого файла с помощью программы «C: \ Program Files \ IIS Express \ appcmd.exe». Потребовалось время, чтобы выяснить параметры контроля, но я поделюсь своими выводами здесь. По сути, вы можете создать файл .bat, который запускает как команду NETSH, так и APPCMD.EXE (и, возможно, выгрузить файл хоста, если хотите), чтобы упростить настройку заголовка хоста с помощью IIS Express.

Ваш установочный файл bat будет выглядеть примерно так:

netsh http add urlacl url=http://yourcustomdomain.com:80/ user=everyone 

"C:\Program Files\IIS Express\appcmd.exe" set site "MyApp.Web" /+bindings.[protocol='http',bindingInformation='*:80:yourcustomdomain.com']

Я также сделаю "bat" файл "Uninstall", который очистит эти привязки .. (потому что часто я просто фальсифицирую DNS, чтобы я мог работать с кодом, чувствительным к имени хоста)

netsh http delete urlacl url=http://yourcustomdomain.com:80/

"C:\Program Files\IIS Express\appcmd.exe" set site "MyApp.Web" /-bindings.[protocol='http',bindingInformation='*:80:yourcustomdomain.com']

Я надеюсь, что эта информация будет полезна для кого-то .. Мне потребовалось немного, чтобы раскрыть.

Джесси Флинт
источник
4

Следуя совету Jaro, я смог заставить это работать под Windows XP и IIS Express (установленными через Web Matrix) с небольшой модификацией и не ограничивался только localhost. Это просто вопрос правильной установки привязок.

  1. Используйте WebMatrix для создания нового сайта из папки в корне вашего веб-приложения.
  2. Закройте WebMatrix.
  3. Откройте %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (пути Windows XP. Vista и 7 будут похожими) и отредактируйте определение сайта в <sites>блоке конфигурации так, чтобы оно соответствовало следующему:

    <site name="DevExample" id="997005936">
        <application path="/" applicationPool="Clr2IntegratedAppPool">
            <virtualDirectory
                path="/"
                physicalPath="C:\path\to\application\root" />
        </application>
        <bindings>
            <binding
                protocol="http"
                bindingInformation="*:80:dev.example.com" />
        </bindings>
        <applicationDefaults applicationPool="Clr2IntegratedAppPool" />
    </site>

Если запущен MVC, оставьте для applicationPool один из «Интегрированных» параметров.

Нил Монро
источник
3

Решение Дэвида хорошо. Но я обнаружил, что <script>alert(document.domain);</script>на странице все еще выводится предупреждение «localhost», поскольку URL-адрес проекта по-прежнему является localhost, даже если он был переопределен http://dev.example.com. Другая проблема, с которой я сталкиваюсь, заключается в том, что она предупреждает меня, что порт 80 уже используется, даже если я отключил Skype, используя номер порта 80, как это рекомендовал Дэвид Мердок. Итак, я нашел другое решение, которое намного проще:

  1. Запустите Блокнот от имени администратора и откройте C: \ Windows \ System32 \ drivers \ etc \ hosts, добавьте 127.0.0.1 mydomain и сохраните файл;
  2. Откройте веб-проект в Visual Studio 2013 (Примечание: должен также запускаться от имени администратора), щелкните правой кнопкой мыши проект -> Свойства -> Веб (предположим, что URL-адрес проекта в разделе «IIS Express» установлен http://localhost:33333/), затем измените его с http://localhost:33333/вhttp://mydomain:333333/ Примечание: После этого изменения, вы не должны ни нажать кнопку «Создать виртуальный каталог» справа от окна проекта Url ни нажмите на кнопку Сохранить в Visual Studio , поскольку они не будут успешно. Вы можете сохранить настройки после следующего шага 3.
  3. Откройте% USERPROFILE% \ My Documents \ IISExpress \ config \ applicationhost.config, найдите «33333: localhost», затем обновите его до «33333: mydomain» и сохраните файл.
  4. Сохраните настройки, как указано в шаге 2.
  5. Щелкните правой кнопкой мыши веб-страницу в вашей визуальной студии и выберите «Просмотр в браузере». Теперь страница откроется в разделе http://mydomain:333333/, и <script>alert(document.domain);</script>на странице появится предупреждение «mydomain».

Примечание: Предполагается, что номер порта, указанный выше, равен 33333. Вам необходимо изменить его на номер порта, установленный вашей Visual Studio.

Сообщение отредактировано: сегодня я попытался с другим доменным именем и получил следующую ошибку: Невозможно запустить веб-сервер IIS Express. Не удалось зарегистрировать URL ... Доступ запрещен. (0x80070005) . Я выхожу из IIS Express, щелкнув правой кнопкой мыши значок IIS Express в правом углу на панели задач Windows, а затем перезапустите Visual Studio в качестве администратора, и проблема исчезнет.

wcb1
источник
1
Теперь это ответ, который следует рассматривать как правильное решение! Обязательно отредактируйте файл applicationhost.config, расположенный в .vs / config, если вы используете Visual Studio 2015.
Фабио Сальвалай,
1

Я перепробовал все выше, ничего не получалось. Проблема была решена путем добавления привязок IPv6 в файл hosts. На шаге 5 ответа @David Murdochs добавьте две строки вместо одной, то есть:

127.0.0.1 dev.example.com
::1 dev.example.com

Я понял это, проверив $ ping localhostиз командной строки, которая использовалась для возврата:

Reply from 127.0.0.1: bytes=32 time<1ms TTL=128

Вместо этого теперь возвращается:

Reply from ::1: time<1ms

Я не знаю почему, но по какой-то причине IIS Express начал использовать IPv6 вместо IPv4.

Мортен Асло-Петерсен
источник
0

Оставив это здесь на всякий случай ...

Мне нужно было иметь собственные домены для настройки Wordpress Multisite в IIS Express, но ничего не работало, пока я не запустил Webmatrix / Visual Studio в качестве администратора. Тогда я смог привязать поддомен к тому же приложению.

<bindings> 
    <binding protocol="http" bindingInformation="*:12345:localhost" />
    <binding protocol="http" bindingInformation="*:12345:whatever.localhost" />
</bindings>

Затем перейдите по адресу http: //whwhat.localhost: 12345 / .

MW247
источник