Как включить внешний запрос в IIS Express? - PullRequest
422 голосов
/ 23 июля 2010

Как включить удаленные запросы в IIS Express? Скотт Гатри написал, что это возможно , но он не сказал как.

Ответы [ 23 ]

383 голосов
/ 29 июля 2010

На сайте группы IIS есть запись в блоге, в которой объясняется, как включить удаленные подключения в IIS Express .Вот соответствующая часть этого поста:

В Vista и Win7 выполните следующую команду из административного запроса:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Для XPСначала установите средства поддержки Windows XP с пакетом обновления 2 (SP2).Затем введите в командной строке следующую команду:

httpcfg set urlacl /u http://vaidesg1:8080/ /a D:(A;;GX;;;WD)

336 голосов
/ 04 апреля 2013

Вам может потребоваться внести три изменения.

  1. Скажите IIS Express, чтобы он связывался со всеми ip-адресами и именами хостов. В вашем .config файле. Как правило:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • %userprofile%\My Documents\IISExpress\config\applicationhost.config

Найдите обязательный элемент вашего сайта и добавьте

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Установить бит Windows под названием «http.sys». От имени администратора выполните команду:
    netsh http add urlacl url=http://*:8080/ user=everyone

Где everyone - группа окон. Используйте двойные кавычки для групп с пробелами типа "Tout le monde".

  1. Разрешить IIS Express через брандмауэр Windows.

    Пуск / Брандмауэр Windows в режиме повышенной безопасности / Входящие правила / Новое правило ...

    Программа %ProgramFiles%\IIS Express\iisexpress.exe
    ИЛИ Порт 8080 TCP

Теперь, когда вы начинаете iisexpress.exe, вы должны увидеть сообщение, такое как

Успешно зарегистрированный URL-адрес "http://*:8080/" для сайта" hello world "application" / "

120 голосов
/ 30 апреля 2015

Я помню, что сталкивался с такими же проблемами, пытаясь использовать этот рабочий процесс несколько месяцев назад.

Именно поэтому я написал простую прокси-утилиту специально для такого сценария: https://github.com/icflorescu/iisexpress-proxy.

Используя IIS Express Proxy , все становится довольно просто - не нужно «netsh http add urlacl url = vaidesg: 8080 / user = Everyone» или связываться с вашим «applicationhost.config» .

Просто введите это в командной строке:

iisexpress-proxy 8080 to 3000

… а затем вы можете указать свои удаленные устройства на http://vaidesg:3000.

В большинстве случаев проще, лучше.

104 голосов
/ 10 ноября 2015

У меня ничего не получалось, пока я не нашел iisexpress-proxy .

Откройте командную строку как администратор, затем запустите

npm install -g iisexpress-proxy

затем

iisexpress-proxy 51123 to 81

, если ваш проект Visual Studio открывается на localhost: 51123 и вы хотите получить доступ на внешнемIP-адрес xxxx: 81

Редактировать: я сейчас использую ngrok

33 голосов
/ 25 мая 2011

Хороший ресурс - Работать с SSL во время разработки проще с IISExpress от Скотта Хансельмана.

Вам нужен раздел Получение IIS Express для внешнего обслуживаниячерез порт 80

31 голосов
/ 12 мая 2013

В качестве дополнения к этому:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Это будет работать только на английских версиях Windows.Если вы используете локализованную версию, вы должны заменить «все» чем-то другим, например:

  • «Iedereen» при использовании голландской версии
  • «Jeder» при использованииНемецкая версия
  • "Mindenki" при использовании венгерской версии

В противном случае вы получите ошибку (Ошибка создания SDDL, Ошибка: 1332)

27 голосов
/ 31 марта 2017

Если вы работаете с Visual Studio, выполните следующие действия для доступа к IIS-Express через IP-адрес:

  1. Получите IP-адрес вашего хоста: ipconfig в командной строке Windows
  2. GoTo

    $(SolutionDir)\.vs\config\applicationHost.config
    
  3. Найти

    <site name="WebApplication3" id="2">
       <application path="/" applicationPool="Clr4IntegratedAppPool">
          <virtualDirectory path="/" physicalPath="C:\Users\user.name\Source\Repos\protoype-one\WebApplication3" />
       </application>
       <bindings>
         <binding protocol="http" bindingInformation="*:62549:localhost" />
       </bindings>
    </site>
    
  4. Добавить: <binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
    с вашего IP-адреса

  5. Запустите Visual Studio с правами администратора, и все должно работать
  6. Возможно, возникнут проблемы с брандмауэром, если вы попытаетесь подключиться с удаленного компьютера
18 голосов
/ 19 июня 2017

Я решил это с помощью установки «Конвейер по Keyoti» в Visual Studio Professional 2015. Конвейер сгенерировал УДАЛЕННЫЙ адрес (ваш IP) с портом (45455), который разрешает внешний запрос. Пример:

enter image description here

Конвейер позволяет тестировать веб-приложения с внешних планшетов и телефонов в сети или с эмуляторов Android (без http://10.0.2.2:<hostport>)

Шаги находятся по следующей ссылке:

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti

10 голосов
/ 01 июля 2015

Если вы попробовали ответ полковника Паника , но не работали в Visual Studio, попробуйте следующее:

Добавьте еще один <binding /> в конфигурацию IIS Express

<bindings>
    <binding protocol="http" bindingInformation="*:8080:localhost" />
    <binding protocol="http" bindingInformation="*:8080:hostname" />
</bindings>

Наконец, вам нужно запустить Visual Studio от имени администратора

7 голосов
/ 07 декабря 2016

Это то, что я сделал для Windows 10 с Visual Studio 2015, чтобы включить удаленный доступ, как по http, так и по https:

Первый шаг - привязать ваше приложение к вашему внутреннему IP-адресу. Запустите cmd -> ipconfig, чтобы получить адрес. Откройте файл /{project folder}/.vs/config/applicationhost.config и прокрутите вниз, пока не найдете что-то вроде этого:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Добавьте две новые привязки под bindings. Вы также можете использовать HTTPS, если хотите:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Добавьте следующее правило в брандмауэр, откройте новое приглашение cmd от имени администратора и выполните следующие команды:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Теперь запустите Visual Studio как Administrator. Щелкните правой кнопкой мыши файл проекта веб-проектов и выберите Properties. Перейдите на вкладку Web и нажмите Create Virtual Directory. Если Visual Studio не запускается от имени администратора, это, вероятно, завершится ошибкой. Теперь все должно работать.

enter image description here

...