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

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

Ответы [ 6 ]

118 голосов
/ 09 марта 2011

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

12 голосов
/ 10 июля 2013

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

Например,

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

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

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

PortMapper configuration

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

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

  • Мой брандмауэр маршрутизатора перенаправляет 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>
6 голосов
/ 06 февраля 2013

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

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

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 голосов
/ 13 августа 2013

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

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

2 голосов
/ 29 июля 2012

Уловка с пользовательским правилом в Fiddler из http://blogs.microsoft.co.il/blogs/shair/archive/2008/12/15/how-to-use-fiddler-on-localhost.aspx в конечном итоге сработала.

0 голосов
/ 03 октября 2014

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

...