Um utilitário de linha de comando simples, mas prático, permitindo que os desenvolvedores .NET testem os aplicativos da Web servidos pelo IIS Express em dispositivos remotos.
Você é um desenvolvedor .NET criando aplicativos da Web móveis? Você já ficou frustrado com o fato de que não há maneira fácil de permitir que o IIS Express aceite conexões de dispositivos remotos? ...
Não há necessidade de instalar iisexpress-proxy se você estiver usando npm@^5.2.0 ; Você pode simplesmente executá -lo com npx . Se você estiver usando uma versão mais antiga do npm , provavelmente desejará iisexpress-proxy instalado como um módulo global:
npm install -g iisexpress-proxyNota: você precisa ter o Node.js instalado.
Se você estiver usando npm@^5.2.0 :
npx iisexpress-proxy@latest localPort to proxyPort Como alternativa, se você instalou iesexpress-proxy como um módulo npm global:
iisexpress-proxy localPort to proxyPortPor exemplo, se a porta expressa do IIS do seu aplicativo for 51123, execute isso no prompt de comando:
iisexpress-proxy 51123 to 3000
O programa listará os endereços externos que você pode usar para testar seu aplicativo em dispositivos remotos.
iisexpress-proxy padrão é HTTP; portanto, se o seu aplicativo estiver executando o HTTPS, inclua o URL completo.
iisexpress-proxy https://localhost:51123 to 3000 Observe que isso será encerrado HTTPS. Na sua máquina de destino, conecte -se à porta 3000 usando HTTP, não HTTPS.
Se você deseja que o proxy em si sirva HTTPS, também pode especificar o destino com o URL completo.
iisexpress-proxy https://localhost:51123 to https:// * :3000 Isso gerará um certificado autoassinado e o usará, o OpenSSL deve estar no PATH para que isso funcione.
Se você estiver no Windows, a maneira mais fácil de obter o OpenSSL é usar o Git Bash que o acompanha pré-instalado.
Se você deseja vincular a uma interface específica em vez de todos eles, use seu IP no URL de destino, por exemplo, https://10.0.0.1:3000 . Observe que a parte direita não pode ser um nome de domínio.
Você também pode usar o iesexpress-proxy para expor uma instância do servidor IIS em execução em um host diferente acessível através da VPN, assim:
iisexpress-proxy host:port to proxyHost:proxyPortPor exemplo, vamos considerar este cenário:
Ao executar isso no prompt de comando:
iisexpress-proxy 192.168.96.3:5000 to 192.168.0.102:3000... você poderá acessar o aplicativo apontando os dispositivos móveis para 192.168.0.102:3000.
Para outro exemplo avançado, considere que você está no Wi -Fi público e não deseja expor publicamente seu servidor de desenvolvimento. Você pode configurar uma VPN entre o laptop e o telefone e expor apenas o servidor na interface VPN (10.0.0.1). Então você pode correr
iisexpress-proxy 5000 to 10.0.0.1:8080... e abra http://10.0.0.1:8080 no seu telefone com VPN ativado, enquanto outros usuários do WiFi não poderão se conectar.
Nota: Esta funcionalidade foi adicionada em v1.1.0 (lançado em 21/10/2015) .
O suporte do WebSocket foi adicionado no v1.4.0 por Stan Hebben - ver PR #11 para obter detalhes.
Se você não quiser usar certificados gerados, você pode fornecer seu próprio certificado e chave usando argumentos cert / key :
iisexpress-proxy https://localhost:51123 to https:// * :3000 --key=./your-key.pem --cert=./your-cert.pemNota: Esta funcionalidade foi adicionada em v1.7.0 (lançado em 14/02/2022) .
iisexpress-proxy não funciona em cenários envolvendo autenticação integrada do Windows (consulte a edição #here).
Está proxyndo o tráfego HTTP no localPort para proxyPort em todas as interfaces de rede disponíveis e também está alterando a origem do cabeçalho do host, permitindo testar os aplicativos da Web hospedados pelo IIS Express em vários dispositivos remotos (dispositivos móveis, outros desktops, etc.).
Se você precisar acessar o host original solicitado pelo navegador, os cabeçalhos de solicitação incluirão os cabeçalhos X-Forward. No ASP.NET, Request.Headers["x-forwarded-host"] conterá o host solicitado.
Este utilitário de linha de comando envolve http-proxy. O logotipo original do http-proxy foi criado por Diego Pasquali.
Se você achar esse repositório útil, dê uma estrela, tweet sobre isso e me endossa no LinkedIn:
Estou recebendo muitas perguntas de pessoas apenas aprendendo a fazer desenvolvimento da Web ou simplesmente procurando resolver um problema muito específico que eles estão lidando. Embora eu responda a alguns deles para o benefício da comunidade, entenda que a fonte aberta é um esforço compartilhado e definitivamente não se trata de pegar carona no trabalho de outras pessoas. Em lugares como o Github, isso significa que levantar problemas é incentivado, mas criar PRs úteis é muito melhor. Se estou disposto a compartilhar parte do meu código gratuitamente, estou fazendo isso por vários motivos: meus próprios desafios intelectuais, orgulho, arrogância e teimosia em acreditar que estou trazendo uma contribuição ao progresso e liberdade comuns, etc. Seu bem-estar em particular provavelmente não é uma dessas razões. Não estou no negócio de fornecer consultoria gratuita; portanto, se você precisar da minha ajuda para resolver seu problema específico, há uma taxa para isso.
Em 24 de fevereiro de 2022, a Rússia invadiu ilegalmente a Ucrânia. Este é um ataque injustificado e não provocado à soberania de um país vizinho, mas também uma afronta aberta à paz e estabilidade internacionais que têm o potencial de degenerar em um evento nuclear que ameaçava a própria existência da humanidade. Sou cidadão romeno (UE), mas estou com a Ucrânia e estou fazendo tudo ao meu alcance para parar essa loucura. Veja como você pode mostrar seu apoio.
A licença ISC.