Использование IIS Express для размещения веб-сайта (временно)
У меня есть сайт (MVC3), который для разработки размещается в IIS Express. (Я столкнулся с ошибкой Cassini Devserver и должен был обновить...)
Теперь мне интересно, можно ли позволить другим машинам в моей локальной сети (за маршрутизатором) видеть сайт, размещенный на моей машине? (например, если я пишу http://my.местный.ip: порт в браузер в той же локальной сети, что и я, Будет ли загружаться страница?)
6 ответов:
по умолчанию IIS Express обслуживает только запросы localhost. Для обслуживания внешних запросов edit (расположенном в
%userprofile%\documents\iisexpress\config\) и измененияlocalhostдо'*'или имя Вашего компьютера. (помните, для некурящих имя localhost привязка должна быть запущена от имени администратора или установить URL-адрес списка управления доступом в качестве администратора и запустите iisexpress не от имени администратора)
кроме того, вы можете использовать что-то вроде PortMapper AnalogX чтобы выступать в качестве небольшой петлевой прокси для туннель частный localhost привязал порты к открытым портам.
например,
- IISExpress локально привязан к localhost: 8080
- PortMapper порт 9090 настроен для ретрансляции трафика на localhost: 8080
эффективно, любое соединение на порту 9090 (открыт PortMapper) будет направляться к localhost: 8080; таким образом, обходя все netsh глупости, которые могут быть боль иногда.
ниже моя конфигурация:
преимущество использования этого метода проксирования заключается в том, что он не постоянно предоставляет open IISExpress порт на поле локального разработчика.
редко бывают случаи, когда я хочу открыть порт публично для встреч; но большую часть времени порт должен быть закрыт и доступен только localhost. Изменение правил брандмауэра на маршрутизаторе каждый раз является болью. Вот как у меня все настроено:
- мой брандмауэр маршрутизатора вперед 9090 порт PortMapper
- PortMapper только продолжает проксировать трафик IISExpress (слушать на 8080) только если PortMapper работает.
Примечание
убедитесь, что закрыть все PortMapper windows для любых изменений, которые вступят в силу.
примечание 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>
Я полагаю, что есть три шага, чтобы сделать это успешным:
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
ответ в этом потоке велик, он просто оставляет исключения брандмауэра.
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
Пользовательское правило трюк в скрипач из http://blogs.microsoft.co.il/blogs/shair/archive/2008/12/15/how-to-use-fiddler-on-localhost.aspx работал на меня в конце концов.
да вы можете настроить как можно больше сайтов с помощью iis express для использования в локальной сети вот ссылка доступ к локальным сайтам из локальной сети IIS Express, которые объясняют, как этого добиться.

Comments