Простая, но практическая утилита командной строки, позволяющая разработчикам .NET тестировать веб-приложения, обслуживаемые IIS Express на удаленных устройствах.
Вы создаете мобильные веб -приложения .NET Developer? Вы когда -нибудь были разочарованы тем фактом, что нет простого способа позволить IIS Express принять соединения с удаленных устройств? ...
Нет необходимости устанавливать iisexpress-proxy если вы используете npm@^5.2.0 ; Вы можете просто запустить его с помощью npx . Если вы используете более старую версию npm , вы, скорее всего, захотите, чтобы iisexpress-proxy был установлен в качестве глобального модуля:
npm install -g iisexpress-proxyПримечание: вам нужно установить node.js.
Если вы используете npm@^5.2.0 :
npx iisexpress-proxy@latest localPort to proxyPort В качестве альтернативы, если вы установили iisexpress-proxy в качестве глобального модуля npm :
iisexpress-proxy localPort to proxyPortНапример, если порт вашего приложения IIS Express составляет 51123, запустите его в командной строке:
iisexpress-proxy 51123 to 3000
В программе будут перечислены внешние адреса, которые вы можете использовать для тестирования вашего приложения на удаленных устройствах.
iisexpress-proxy по умолчанию в HTTP, поэтому, если ваше приложение работает HTTPS, включите полный URL.
iisexpress-proxy https://localhost:51123 to 3000 Обратите внимание, что это прекратит HTTPS. На вашем пункте назначения подключитесь к порту 3000 , используя HTTP, а не HTTPS.
Если вы хотите, чтобы сама прокси обслуживал HTTPS, вы также можете указать цель с полным URL.
iisexpress-proxy https://localhost:51123 to https:// * :3000 Это будет генерировать саморегиванный сертификат и использовать его, OpenSSL должен быть на PATH , чтобы это работало.
Если вы находитесь в Windows, самый простой способ получить OpenSSL-это использовать Git Bash, который поставляется с ним, предварительно установленным.
Если вы хотите привязать к конкретному интерфейсу вместо их всех, используйте его IP в целевом URL, например, https://10.0.0.1:3000 . Обратите внимание, что правая часть не может быть доменным именем.
Вы также можете использовать iisexpress-proxy , чтобы выявить экземпляр сервера IIS, работающий на другом хосте, доступном через VPN, например:
iisexpress-proxy host:port to proxyHost:proxyPortНапример, давайте рассмотрим этот сценарий:
Запустив это в командной строке:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000... Вы сможете получить доступ к приложению, указав мобильные устройства на 192.168.0.102:3000.
Для другого расширенного примера подумайте, что вы находитесь на публичном Wi -Fi и не хотите публично разоблачить свой сервер Dev. Вы можете настроить VPN между ноутбуком и телефоном и разоблачить только сервер на интерфейсе VPN (10.0.0.1). Тогда вы можете бежать
iisexpress-proxy 5000 to 10.0.0.1:8080... и откройте http://10.0.0.1:8080 на вашем телефоне с включенным VPN, в то время как другие пользователи Wi -Fi не смогут подключиться.
Примечание. Эта функциональность была добавлена в V1.1.0 (выпущен 21.10.2015) .
Поддержка WebSocket была добавлена в v1.4.0 Стэном Хеббеном - для получения подробной информации см. PR #11.
Если вы не хотите использовать сгенерированные сертификаты, вы можете предоставить свой собственный сертификат и ключ, используя аргументы cert / key :
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pemПримечание. Эта функциональность была добавлена на v1.7.0 (выпущена 14.02.2022) .
iisexpress-proxy не работает в сценариях, включающих интегрированную аутентификацию Windows (см. Выпуск #HEED).
Он обеспечивает трафик HTTP на localPort для proxyPort во всех доступных сетевых интерфейсах, а также изменяет источник заголовка хоста, позволяя протестировать веб -приложения, размещенные IIS Express на различных удаленных устройствах (мобильные устройства, другие рабочие столы и т. Д.).
Если вам нужно получить доступ к исходному хосту, запрашиваемому браузером, заголовки запроса будут включать заголовки X-Forward. В asp.net, Request.Headers["x-forwarded-host"] будет содержать запрошенный хост.
Эта утилита командной строки завершает HTTP-Proxy. Оригинальный логотип HTTP-Proxy был создан Диего Паскуали.
Если вы найдете этот репо полезным, пожалуйста, дайте ему звезду, напишите об этом и одобрите меня на LinkedIn:
Я получаю много вопросов от людей, которые просто учатся заниматься веб -разработкой или просто стремятся решить очень конкретную проблему, с которой они сталкиваются. Хотя я отвечу на некоторых из них в интересах сообщества, пожалуйста, поймите, что открытый источник-это общее усилие, и это определенно не связано с пиггибацией на работе других людей. В таких местах, как Github, это означает, что проблемы возникают проблемы, но придумывать полезные PRS намного лучше. Если я хочу поделиться некоторыми из моего кода бесплатно, я делаю это по ряду причин: мои собственные интеллектуальные проблемы, гордость, высокомерие, упрямство, чтобы поверить, что я приношу вклад в общий прогресс и свободу и т. Д. Ваше конкретное благополучие, вероятно, не является одной из этих причин. Я не занимаюсь предоставлением бесплатной консультации, поэтому, если вам нужна моя помощь, чтобы решить вашу конкретную проблему, за это есть плата.
24 февраля 2022 года Россия незаконно вторглась в Украину. Это неоправданная, неспровоцированная атака на суверенитет соседней страны, но также и открытое оскорбление международного мира и стабильности, которое может выродиться в ядерное событие, угрожающее самому существованию человечества. Я гражданин Румынского (ЕС), но я стою с Украиной, и я делаю все, что в моих силах, чтобы остановить это безумие. Вот как вы можете показать свою поддержку.
Лицензия ISC.