Настройка IIS Express для внешнего доступа к проекту VS2010

Я занимаюсь разработкой проекта в VS2010 и могу просматривать свой сайт локально через IIS Express. Я хотел бы включить внешний доступ по сети.

Все мои исследования отправили меня в эту запись блога: http://blogs.iis.net/vaidyg/archive/2010/07/29/serving-external-traffic-with-webmatrix-beta.aspx , что полезно но, похоже, не показывает, как настроить привязки для проекта, запущенного в Visual Studio (я не могу найти экран на снимках экрана, и я отредактировал информацию привязки в applicationhost.config, но, кажется, это не отражается при запуске сайт от визуальной студии).

102 голоса | спросил snumpy 25 MarpmFri, 25 Mar 2011 17:28:47 +03002011-03-25T17:28:47+03:0005 2011, 17:28:47

9 ответов


0

1 . После редактирования файла applicationhost.config (находится в папке IISExpress в ваших документах) привязки вашего сайта должны выглядеть следующим образом:

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

Привязки состоят из трех частей. Во-первых, IP-адрес или список, или, как в этом случае, подстановочный знак. Во-вторых, номер порта и, в-третьих, имя хоста, или список, или подстановочный знак (для фильтрации по заголовку Host). Для целей разработки подстановочный знак здесь наиболее подходит, так как вы, вероятно, будете использовать уникальный порт.

2 Поскольку вы используете привязку не локального хоста, требуются дополнительные разрешения. Вы можете запустить VS как администратор, или, предпочтительно, вы должны добавить списки ACL для URL , чтобы предоставить необходимые разрешения. В приведенном ниже примере разрешение дано каждому, но вы можете использовать свое собственное имя пользователя.

Примечание. urlacl должно точно соответствовать привязке. Поэтому urlacl для http://*:8080 позволит привязка *:8080:*, но не привязка *:8080:localhost хотя последний является подмножеством первого. это означает, что если вместо использования подстановочного знака вы перечисляете заголовки узлов в applicationhost.config, вы должны добавить соответствующий urlacl для каждого.

  

Шаги по настройке HTTP.sys для внешнего трафика аналогичны настройке сайта для использования зарезервированного порта. В Windows 7 или Windows Vista из командной строки с повышенными привилегиями выполните следующую команду:

     

netsh http add urlacl url=http://*:8080/ user=DOMAIN\username

     

В Windows XP выполните следующую команду из командной строки с повышенными привилегиями:

     

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

Примечание 2 . Если запуск VS от имени администратора или добавление записей ACL не решит вашу проблему, запустите IIS Express из командной строки и проверьте, нет ли каких-либо сообщений об ошибках регистрации. Для запуска из командной строки введите следующую команду:

iisexpress.exe /site:"your-site-name"

3 Наконец, вам понадобятся соответствующие записи брандмауэра. Для этого проще всего использовать консоль «Брандмауэр Windows в режиме повышенной безопасности».

В разделе «Входящие правила» выберите «Новое правило ...».

  • Тип правила - "Пользовательский".
  • Программа - это Сервисы -> Настройка ... -> Применить только к сервисам. (Хотя IIS Express не является службой, мультиплексор HTTP, который он использует).
  • Протокол - TCP
  • Определенные порты: список всех портов для всех ваших привязок IIS Express. Вы можете вернуться к этому правилу и добавить порты в любое время. (Если это становится утомительным, вы можете добавить диапазон, например 40000-65534, который охватывает весь диапазон, используемый Visual Studio, но имейте в виду, что это менее безопасно).
  • Действие "Разрешить соединение"
  • Профиль будет одним из следующих. В случае сомнений выберите «Домен + частный».
    • "Домен", если у вас корпоративный рабочий стол и он будет работать только на локальном домене
    • "Домен + Приват" Если у вас частная машина разработки в не корпоративной среде или корпоративный ноутбук, который также должен работать при работе из дома.
    • «Домен, частный и общедоступный», если вам нужно проводить демонстрации в не частных сетях.
  • Имя должно быть примерно таким, как "IIS Express Dev Server"
ответил vikomall 26 MaramSat, 26 Mar 2011 00:29:10 +03002011-03-26T00:29:10+03:0012 2011, 00:29:10
0

Я также часами занимался этой проблемой, пытаясь перейти с моего Android Xoom на мою машину с win7, чтобы я мог протестировать новое веб-приложение asp.net, которое я создал. Все, что я сделал, это изменил IISExpress 'applicationhost.config с использования HostName ПК на текущий IP-адрес ПК для моего нового сайта.

<binding protocol="http" bindingInformation="*:80:dev-Lee" />

к

<binding protocol="http" bindingInformation="*:80:192.168.1.102" /> 

Однажды я сделал это & ​​amp; перезапустил IISExpress ... Я смог перейти к своей машине dev-Lee & увидеть мое приложение из моего Xoom!

ответил leester39 30 J000000Monday12 2012, 05:47:25
0

Мы можем добавить несколько адресов привязки, отредактировав applicationhost.config из IIS Express

<bindings>
   <binding protocol="http" bindingInformation="*:62217:localhost" />
   <binding protocol="http" bindingInformation="*:62217:192.168.0.5" />
   <binding protocol="http" bindingInformation="*:62218:192.168.0.5" />
</bindings>

Теперь мы можем получить доступ к веб-сайту из локальной сети, используя IP-адрес.

Доступ к локальным сайтам из Lan с помощью IIS Express

ответил Nasir Mahmood 9 PMpWed, 09 Apr 2014 14:36:24 +040036Wednesday 2014, 14:36:24
0

Visual Studio 2013 с пакетом обновления 1 (SP1) и выше (2015) включает параметр «Применить настройки сервера ко всем пользователям (сохранить в файле проекта)». Это включено по умолчанию. При включении Visual Studio запускает IIS Express с аргументами командной строки, которые заставляют его использовать другой файл конфигурации. Расположение файла applicationhost.config находится в каталоге проекта в .vs \ config.

ответил Jon Eldridge 22 Mayam15 2015, 11:10:12
0

Мы сделали бесплатное расширение VS (2012, 2013, 2015) под названием Conveyor, которое позволяет это - вы можете найти его в меню Tools-> Extensions ... в VS или на сайте галереи https://visualstudiogallery.msdn.microsoft.com/a429dbb7-a982-4541 b401-934375c02c0f? SRC = Home

ответил Jim W 2 32016vEurope/Moscow11bEurope/MoscowWed, 02 Nov 2016 20:26:57 +0300 2016, 20:26:57
0

Если вы работаете с 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. Возможно, возникнут проблемы с брандмауэром, если вы попытаетесь подключиться удаленно

Подсказка в том, что Visual Studio получил свой собственный файл applicationHost.config!

ответил Daniel Eisenreich 31 MaramFri, 31 Mar 2017 10:37:10 +03002017-03-31T10:37:10+03:0010 2017, 10:37:10
0

У меня было много проблем с тем, чтобы заставить это работать в Visual Studio 2012, я перешел с 404 ошибок на 503 ошибки. В конце концов, что сработало для меня, это стереть все связанные настройки в конфигурации IIS Express ...

"\Program Files (x86)\IIS Express\appcmd.exe" list site
"\Program Files (x86)\IIS Express\appcmd.exe" delete site xxx
"\Program Files (x86)\IIS Express\appcmd.exe" delete site yyy

Затем я создал новый виртуальный каталог на странице свойств в своем веб-проекте в VS, но перед созданием виртуального каталога я изменил имя хоста на http: //myhost: 80 / и нажмите кнопку создания виртуального каталога. Ранее я получал сообщения о том, что имя хоста должно быть «localhost», но на этот раз это не так. И после этого все заработало.

Короче говоря, сначала очистите существующую конфигурацию и начните снова.

ответил stu 28 Jam1000000amWed, 28 Jan 2015 00:48:08 +030015 2015, 00:48:08
0

Если ваш внешний домен - "name.mydyndns.com", вам нужно написать:

<binding protocol="http" bindingInformation="*:name.mydyndns.com" />

Это работает на Windows 2003 Server и IIS 7.5 Express.

ответил Juan 7 J0000006Europe/Moscow 2013, 10:03:05
0

Снимок экрана

в пуле приложений на IIS установите для «Включить 32-разрядные приложения» значение «true».

ответил Mürsel Yıldırım 20 FebruaryEurope/MoscowbSat, 20 Feb 2016 18:37:09 +0300000000pmSat, 20 Feb 2016 18:37:09 +030016 2016, 18:37:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132