Подтвердить что ты не робот

Использование IIS Express для размещения веб-сайта (временно)

У меня есть веб-сайт (MVC3), который для разработки размещен в IIS Express. (Я столкнулся с ошибкой Cassini Devserver и должен был обновиться...) Теперь мне интересно, можно ли другим машинам на моей локальной сети (за маршрутизатором) видеть сайт, размещенный на моей машине? (например, если я напишу http://my.local.ip:port в браузере в той же локальной сети, что и я, будет ли загрузка страницы?)

4b9b3361

Ответ 1

По умолчанию IIS Express обслуживает только запросы localhost. Чтобы обслуживать внешние запросы, отредактируйте файл applicationhost.config (расположенный в %userprofile%\documents\iisexpress\config\) и измените localhost на '*' или ваше имя машины. (помните, что для привязки не-localhost вы должны работать как администратор или устанавливать URL-адрес acl в качестве администратора, а затем запускать iisexpress как не-администратор)

Ответ 2

В качестве альтернативы вы можете использовать что-то вроде AnalogX PortMapper, чтобы действовать как небольшой прокси-сервер loopback, чтобы туннелировать приватные локальные хосты, чтобы публично открывать порты.

Например,

  • IISExpress локально привязан к localhost: 8080
  • PortMapper порт 9090 настроен для передачи трафика на localhost: 8080

Фактически любое соединение на порту 9090 (открывается PortMapper) будет туннелироваться до localhost: 8080; тем самым минуя всю нецензуру, которая иногда может быть болью.

Ниже приведена моя конфигурация:

PortMapper configuration

Преимущество использования этого метода проксирования заключается в том, что он не навсегда открывает открытый IISExpress порт в локальном блоке dev.

Редко, бывают случаи, когда я хочу публично открыть порт для встреч; но большую часть времени порт должен быть закрыт и доступен только локально. Изменение правил брандмауэра на маршрутизаторе каждый раз является болью. Здесь, как у меня есть настройки:

  • Мой брандмауэр маршрутизатора перенаправляет 9090 порт PortMapper
  • PortMapper продолжает проксирование трафика до IISExpress (прослушивание 8080) только в том случае, если выполняется PortMapper.

Примечание

Не забудьте закрыть все окна PortMapper, чтобы изменения вступили в силу.

Примечание 2

Как описано другими, вам может потребоваться настроить привязки IISExpress для вашего приложения в

 My Documents\IISExpress\applicationhost.config
 project\.vs\config\applicationhost.config

к чему-то вроде:

<bindings>
  <!-- bindingInformaiton format:
          IPToBindTo:Port:DNSHostName -->

  <!--OLD:
  <binding protocol="http" bindingInformation="*:8080:localhost"/>-->

  <!--Change '*' to 127.0.0.1 and remove 'localhost' right of the port number
      to avoid invalid DNS hostname errors -->
  <binding protocol="http" bindingInformation="127.0.0.1:8080:" />

</bindings>

Ответ 3

Я считаю, что есть три способа сделать это успешным:

1) Добавьте запись dns или записи хостов, чтобы другие машины могли искать IP-адрес dev машины

2) Добавьте привязку к applicationhost.config в% userprofile/documents/IISExpress/Config, подобный этому

<site name="MobileDashboard(2)" id="7">
                <bindings>
                    ...
                    <binding protocol="http" bindingInformation="*:yourport#:yourmachinendnsname" />
                </bindings>
            </site>

3) Запустите команду здесь, чтобы разрешить входящие запросы:

netsh http add urlacl url=http://yourmachinendnsname:yourport#/ user=everyone

Ответ 4

Ответ в этом потоке велик, он просто оставляет исключения брандмауэра.

netsh advfirewall firewall add rule name="IIS Express (non-SSL)" action=allow protocol=TCP dir=in localport=8000

netsh advfirewall firewall add rule name="IIS Express (SSL)" action=allow protocol=TCP dir=in localport=44300

Из комментариев @http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx

Ответ 6

да, вы можете настроить так много сайтов, использующих iis express для локального использования lan здесь, это ссылка Доступ к локальным сайтам из Lan IIS Express, которые объясняют, как для достижения этой цели.