Как включить удаленные запросы в IIS Express? Скотт Гатри написал, что это возможно, но не сказал как.
c#
asp.net
iis-express
TedTel
источник
источник
Ответы:
На сайте группы IIS есть пост в блоге, в котором объясняется, как включить удаленные подключения в IIS Express . Вот подходящая часть этого поста:
источник
netsh
команда, позволяющая подключаться к любому имени хоста?user={PARAM_USER}
будет на вашем родном языке.user=todos
вместоuser=everyone
.Вам может потребоваться внести три изменения.
.config
файле. Как правило:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Найдите обязательный элемент вашего сайта и добавьте
Где
everyone
группа окон. Используйте двойные кавычки для групп с пробелами типа "Tout le monde".Разрешить IIS Express через брандмауэр Windows.
Теперь, когда вы начинаете,
iisexpress.exe
вы должны увидеть сообщение, такое какисточник
users=everyone
дляnetsh
(второй этап) может вызвать ошибку 1789. Решение заключается в преобразованииeveryone
к соответствующему имени группы на вашем языке.Project Url
, если я ввожу звездочку для имени хоста, это выдает ошибку. Если я ввожу что-нибудь еще, он пытается создать новый виртуальный каталог. Он не ссылается на запись в application.config.bindingInformation="*:8080:hostname"
и на шаге 2url=http://hostname:8080/
, а в свойствах вашего веб-проекта Visual Studio на вкладке Web установите для Project Url значениеhttp://hostname:8080/
. Удалите*
urlacl, если вы его уже создали; это не сработает, если у вас есть оба. Наконец, URL, по которому вы переходите в своем веб-браузере, должен указывать имя хоста, а не localhost.<binding protocol="http" bindingInformation="*:8080:localhost" />
Я помню, что сталкивался с такими же проблемами при попытке этого рабочего процесса несколько месяцев назад.
Вот почему я написал простую прокси-утилиту специально для такого сценария: https://github.com/icflorescu/iisexpress-proxy .
С помощью IIS Express Proxy все становится довольно просто - не нужно «netsh http add urlacl urlcl = vaidesg: 8080 / user = Everyone» или связываться с вашим «applicationhost.config».
Просто введите это в командной строке:
iisexpress-proxy 8080 to 3000
… А затем вы можете указать свои удаленные устройства на http: // vaidesg: 3000 .
В большинстве случаев проще, лучше.
источник
У меня ничего не получалось, пока я не нашел iisexpress-прокси .
Откройте командную строку как администратор, затем запустите
тогда
при условии, что ваш проект Visual Studio открывается на localhost: 51123 и вы хотите получить доступ по внешнему IP-адресу xxxx: 81
Изменить: я в настоящее время использую
ngrok
источник
В качестве ссылки на это:
Это будет работать только на английских версиях Windows. Если вы используете локализованную версию, вы должны заменить «всех» чем-то другим, например:
В противном случае вы получите ошибку (Ошибка создания SDDL, Ошибка: 1332)
источник
Хороший ресурс - Работать с SSL во время разработки проще с IISExpress Скотта .
То, что вам нужно, это раздел Настройка IIS Express для внешнего обслуживания через порт 80
источник
Если вы работаете с Visual Studio, выполните следующие действия для доступа к IIS-Express через IP-адрес:
ipconfig
в командной строке WindowsПерейти к
найти
Добавить:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
с вашего IP-адреса
источник
Я решил это с помощью установки «Конвейер по Keyoti» в Visual Studio Professional 2015. Конвейер сгенерировал УДАЛЕННЫЙ адрес (ваш IP) с портом (45455), который разрешает внешний запрос. Пример:
Конвейер позволяет тестировать веб-приложения с внешних планшетов и телефонов в сети или с эмуляторов Android (без
http://10.0.2.2:<hostport>
)Шаги в следующей ссылке:
https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti
источник
Если вы пробовали ответ полковника Паника но не работаете в Visual Studio, попробуйте следующее:
Добавьте еще один
<binding />
в вашем конфиге IIS ExpressНаконец, вы должны запустить Visual Studio от имени администратора
источник
Что мне помогло, так это щелкнув правой кнопкой мыши значок «IISExpress», «Показать все приложения». Затем выбрав веб-сайт, я увидел, какой aplicationhost.config он использует, и исправление прошло отлично.
источник
Это то, что я сделал для Windows 10 с Visual Studio 2015, чтобы включить удаленный доступ, как с http, так и с https:
Первый шаг - привязать ваше приложение к вашему внутреннему IP-адресу. Запустите
cmd
->,ipconfig
чтобы получить адрес. Откройте файл/{project folder}/.vs/config/applicationhost.config
и прокрутите вниз, пока не найдете что-то вроде этого:Добавьте две новые привязки под
bindings
. Вы также можете использовать HTTPS, если вам нравится:Добавьте следующее правило в брандмауэр, откройте новое
cmd
приглашение от имени администратора и выполните следующие команды:Теперь запустите Visual Studio как
Administrator
. Щелкните правой кнопкой мыши файл проекта веб-проектов и выберитеProperties
. Перейдите наWeb
вкладку и нажмитеCreate Virtual Directory
. Если Visual Studio не запускается от имени администратора, это, вероятно, завершится ошибкой. Теперь все должно работать.источник
Принятым ответом на этот вопрос является руководство по настройке IIS Express для работы с веб-матрицей. Я нашел это руководство более полезным при попытке заставить его работать с VS 2010.
Я просто выполнил шаги 3 и 4 (запустил IIS Express от имени администратора) и мне пришлось временно отключить брандмауэр, чтобы он заработал.
источник
Вы можете попытаться настроить переадресацию портов вместо того, чтобы изменять конфигурацию IIS Express, добавлять новые правила HTTP.sys или запускать Visual Studio от имени администратора.
По сути, вам нужно перенаправить
IP:PORT
ваш веб-сайт на другой свободный порт вашей машины, но не на локальный хост, а на внешний сетевой адаптер.Дело в том, что IIS Express (по крайней мере, в Windows 10) привязывается к
[::1]:port
значению, что он прослушивает порт IPv6. Вы должны принять это во внимание.Вот как я сделал эту работу - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
Надеюсь, поможет.
источник
Самый простой и крутой способ, который я нашел, - это использовать (установка занимает 2 минуты):
https://ngrok.com/
Это будет работать с чем-либо, работающим на localhost. Просто зарегистрируйтесь, запустите небольшую исполняемую программу, и все, что вы запускаете на локальном хосте, получит общедоступный URL, к которому вы можете получить доступ из любого места.
Это хорошо для демонстрации материала вашим удаленным товарищам по команде, не тратить время на настройку IIS или брандмауэры. Хотите остановить доступ, просто прервите исполняемый файл.
при условии, что 89230 является вашим портом IIS Express
Вы также можете запустить несколько портов даже на бесплатном плане
источник
У меня есть некоторые проблемы с использованием IIS Express в Win 8.1 и внешним запросом.
Я следую за этими шагами, чтобы отладить внешний запрос:
Работает!
источник
Если вы запускаете Visual Studio из Admin, вы можете добавить только
<binding protocol="http" bindingInformation="*:8080:*" />
или
<binding protocol="https" bindingInformation="*:8443:*" />
в
источник
$(SolutionDir).vs\config\applicationHost.config
а также мне пришлось открыть порт (8443) приложения в брандмауэре Windows.У меня был включен локальный IIS, поэтому я просто создал правило перезаписи для моего порта отладки ... Я думаю, что это лучше и круче, чем другой метод, потому что его легче удалить после завершения разработки ... Вот как выглядит перезапись. ,
VS также позволяет вам разрабатывать, используя ваш локальный IIS напрямую (который затем разрешает удаленные подключения), но, в свою очередь, вы всегда должны запускать его как администратор ... Мне это не нравится.
источник
Я решил эту проблему, используя метод обратного прокси.
Я установил wamp-сервер и использовал простую функцию обратного прокси веб-сервера apache.
Я добавил новый порт для прослушивания веб-сервера Apache (8081). Затем я добавил конфигурацию прокси как виртуальный хост для этого порта.
источник
Я сделал все эти шаги, и ничто не помогло мне. И что мне нужно, это просто запустить мое приложение через IIS Express ...
Надеюсь, поможет.
источник
Я не смог обслуживать запросы iis другим пользователям в моей локальной сети, и все, что мне нужно было сделать (в дополнение к вышесказанному), это перезапустить мой маршрутизатор BT Hub.
источник
Это безумно круто и даже покрывает HTTPS красивыми доменными именами:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
Действительно удивительные части, которые я не смог бы найти где-либо еще на SO, если указанная выше ссылка исчезнет:
Вышеуказанная утилита зарегистрирует сертификат SSL для вас! Если вы используете опцию -UseSelfSigned, это очень просто.
Если вы хотите сделать что-то сложное, неочевидная часть - вам нужно указать HTTP.SYS, какой сертификат использовать, например:
Certhash - это «отпечаток», который вы можете получить из свойств сертификата в MMC.
источник
Я сделал следующее и смог подключиться:
1) изменена привязка конфигурации IIS Express с локального хоста на '*'
протокол привязки = "http" bindingInformation = "*: 8888: *"
2) Определено входящее правило на брандмауэре, чтобы разрешить определенный порт для типа протокола: tcp
3) Добавьте следующую команду для добавления конфигурации сети для вашего порта: netsh http add urlacl url = http: // *: 8888 / user = each
источник
Другой способ получить доступ к внешним запросам - использовать IIS вместо IIS Express. В моей визуальной студии я могу легко переключаться.
источник
[диалог свойств проекта]
Для разработки с использованием VisualStudio 2017 и API-проекта NetCore:
1) В Cmd-Box: ipconfig / all для определения IP-адреса
2a) Введите полученный IP-адрес в свойствах проекта -> вкладка «Отладка».
2b) Выберите порт и присоедините его к IP-адресу из шага 2a.
3) Добавьте правило разрешений в брандмауэр, чтобы разрешить входящий TCP-трафик на выбранный порт (мой брандмауэр вызвал диалоговое окно: «Заблокировать или добавить правило в брандмауэр»). Добавить будет в этом случае делать свое дело.
Недостаток решения выше:
1) Если вы используете динамический IP-адрес, вам необходимо повторить действия, описанные выше, в случае, если был назначен другой IP-адрес.
2) У вашего сервера теперь есть открытый порт, который вы можете забыть, но этот открытый порт остается приглашением для нежелательных гостей.
источник