c# - microsoft asp net core module




Como habilitar a solicitação externa no IIS Express? (16)

A maneira mais simples e mais legal que encontrei foi usar (leva 2 minutos para configurar):

https://ngrok.com/

Ele funcionará com qualquer coisa em execução no host local. Basta inscrever-se, executar pouco exequível e tudo o que você executar em localhost recebe URL pública que você pode acessar de qualquer lugar.

Isso é bom para mostrar coisas aos seus colegas de equipe remotos, sem mexer na configuração do IIS ou nos firewalls. Deseja interromper o acesso apenas para finalizar o executável.

ngrok authtoken xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

ngrok http -host-header=localhost 89230

assumindo que 89230 é sua porta do IIS Express

Você também pode executar várias portas, mesmo no plano livre

Como posso habilitar solicitações remotas no IIS Express? Scott Guthrie escreveu que isso é possível, mas ele não disse como.


A resposta aceita para essa pergunta é um guia para obter o IIS Express para trabalhar com o webmatrix. Achei este guia mais útil ao tentar fazê-lo funcionar com o VS 2010.

Eu apenas segui as etapas 3 e 4 (executando o IIS Express como administrador) e tive que desativar temporariamente meu firewall para que ele funcionasse.


Eu fiz o seguinte e consegui conectar:

1) alterou a ligação de configuração expressa do IIS do host local para '*'

protocolo de ligação = "http" bindingInformation = "*: 8888: *"

2) Definiu a regra de entrada no firewall para permitir a porta específica para o tipo de protocolo: tcp

3) Adicione o seguinte comando para adicionar configuração de rede para a sua porta: netsh http adicionar urlacl url = http: // *: 8888 / user = everyone


Eu fiz todos esses passos e nada me ajudou. E o que eu preciso, é só rodar meu aplicativo via IIS Express ...

Espero que ajude.


Eu resolvi isso com a instalação do "Conveyor by Keyoti" no Visual Studio Professional 2015. O transportador gera um endereço REMOTO (seu IP) com uma porta (45455) que habilita a solicitação externa. Exemplo:

O transportador permite que você teste aplicativos da Web a partir de tablets e telefones externos em sua rede ou de emuladores Android (sem http://10.0.2.2:<hostport> )

As etapas estão no seguinte link:

https://marketplace.visualstudio.com/items?itemName=vs-publisher-1448185.ConveyorbyKeyoti


Eu tenho alguns problemas usando o IIS Express no Win 8.1 e solicitação externa.

Eu sigo estes passos para depurar o pedido externo:

  1. Instalar o IIS
  2. Configurar o Visual Studio para usar o IIS local (propriedades de página no seu projeto da Web)
  3. Crie um AppPool exclusivo no IIS para trabalhar com meu aplicativo
  4. No meu projeto eu estou usando o Oracle Client e deve ser 32bits (64 bits não funcionam com o Visual Studio), então eu preciso permitir 32 bits no pool de aplicativos
  5. Configure o firewall do Windows para permitir a solicitação na porta 80 (regras de entrada)

Está funcionando!


Existem três alterações que você pode precisar fazer.

  1. Diga ao próprio IIS Express para ligar a todos os endereços IP e nomes de host. No seu arquivo .config . Tipicamente:
    • VS 2015: $(solutionDir)\.vs\config\applicationhost.config
    • <VS 2015: %userprofile%\My Documents\IISExpress\config\applicationhost.config

Encontre o elemento de ligação do seu site e adicione

    <binding protocol="http" bindingInformation="*:8080:*" />
  1. Configure o bit do Windows chamado 'http.sys'. Como administrador, execute o comando:
    netsh http add urlacl url=http://*:8080/ user=everyone

Onde everyone é um grupo de janelas. Use aspas duplas para grupos com espaços como "Tout le monde".

  1. Permita o IIS Express através do firewall do Windows.

    Iniciar / Firewall do Windows com Segurança Avançada / Regras de Entrada / Nova Regra ...

    Programa %ProgramFiles%\IIS Express\iisexpress.exe
    OU porta 8080 TCP

Agora, quando você iniciar o iisexpress.exe deverá ver uma mensagem como

URL registrado com sucesso "http: // *: 8080 /" para o aplicativo "hello world" do site "/"


Há um post de blog no site da equipe do IIS explicando agora como habilitar conexões remotas no IIS Express . Aqui está a parte pertinente desse post resumida:

No Vista e no Win7, execute o seguinte comando em um prompt administrativo:

netsh http add urlacl url=http://vaidesg:8080/ user=everyone

Para o XP, primeiro instale as ferramentas de suporte do Windows XP Service Pack 2. Em seguida, execute o seguinte comando em um prompt administrativo:

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


Isso foi o que fiz no Windows 10 com o Visual Studio 2015 para habilitar o acesso remoto, com http e https:

O primeiro passo é vincular seu aplicativo ao seu endereço IP interno. Execute cmd -> ipconfig para obter o endereço. Abra o arquivo /{project folder}/.vs/config/applicationhost.config e role até encontrar algo parecido com isto:

<site name="Project.Web" id="2">
    <application path="/">
        <virtualDirectory path="/" physicalPath="C:\Project\Project.Web" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:12345:localhost" />
    </bindings>
</site>

Adicione duas novas ligações em bindings . Você também pode usar HTTPS se quiser:

<binding protocol="http" bindingInformation="*:12345:192.168.1.15" />
<binding protocol="https" bindingInformation="*:44300:192.168.1.15" />

Adicione a seguinte regra ao seu firewall, abra um novo prompt de cmd como administrador e execute os seguintes comandos:

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=12345 profile=private remoteip=localsubnet action=allow

netsh advfirewall firewall add rule name="IISExpressWebHttps" dir=in protocol=tcp localport=44300 profile=private remoteip=localsubnet action=allow

Agora inicie o Visual Studio como Administrator . Clique com o botão direito do mouse no arquivo de projeto de projetos da Web e selecione Properties . Vá para a guia Web e clique em Create Virtual Directory . Se o Visual Studio não for executado como administrador, isso provavelmente falhará. Agora tudo deve funcionar.


Lembro-me de ter encontrado os mesmos problemas ao tentar esse fluxo de trabalho há alguns meses.

É por isso que escrevi um utilitário de proxy simples especificamente para esse tipo de cenário: https://github.com/icflorescu/iisexpress-proxy .

Usando o https://github.com/icflorescu/iisexpress-proxy , tudo se torna bem simples - não é necessário “netsh http adicionar urlacl url = vaidesg: 8080 / user = everyone” ou mexer no seu “applicationhost.config”.

Basta emitir isso no prompt de comando:

iisexpress-proxy 8080 to 3000

… E então você pode apontar seus dispositivos remotos para http: // vaidesg: 3000 .

A maioria das vezes mais simples é melhor.


Nada funcionou para mim até que encontrei o https://github.com/icflorescu/iisexpress-proxy .

Abra o prompt de comando como administrador e execute

npm install -g iisexpress-proxy

então

iisexpress-proxy 51123 to 81

supondo que seu projeto do Visual Studio é aberto no host local: 51123 e você deseja acessar no endereço IP externo xxxx: 81

Edit: Atualmente, estou usando o ngrok


O que me ajudou, foi o botão direito do mouse no ícone 'IISExpress', 'Mostrar todos os aplicativos'. Em seguida, selecionei o site e vi qual aplicativohost.config ele usa, e a correção correu perfeitamente.


Se você executar o Visual Studio a partir do Admin, você pode adicionar apenas

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

ou

<binding protocol="https" bindingInformation="*:8443:*" />

para dentro

%userprofile%\My Documents\IISExpress\config\applicationhost.config

Se você já tentou a resposta do coronel Panic, mas não funciona no Visual Studio, tente isto:

Anexar outro <binding /> na sua configuração do IIS Express

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

Finalmente, você tem que executar o Visual Studio como administrador


Você pode tentar configurar o encaminhamento de porta em vez de tentar modificar sua configuração do IIS Express, adicionando novas regras HTTP.sys ou executando o Visual Studio como um administrador.

Basicamente, você precisa encaminhar o IP:PORT seu website é executado em alguma outra porta livre em sua máquina, mas no adaptador de rede externo, não em localhost.

O problema é que o IIS Express (pelo menos no Windows 10) se liga a [::1]:port o que significa que escuta na porta IPv6. Você precisa levar isso em conta.

Aqui está como eu fiz este trabalho - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html

Espero que ajude.


[diálogo de propriedades do projeto]

Para desenvolvimento usando o VisualStudio 2017 e um projeto de API da NetCore:

1) No Cmd-Box: ipconfig / all para determinar o endereço IP

2a) Digite o endereço IP recuperado em Propriedades do projeto -> Guia de depuração

2b) Selecione uma porta e anexe-a ao endereço IP da etapa 2a.

3) Adicione uma regra de permissão no firewall para permitir o tráfego TCP de entrada na porta selecionada (meu firewall é acionado com uma caixa de diálogo: "Bloquear ou adicionar regra ao firewall"). Adicionar vontade, nesse caso, faça o truque.

Desvantagem da solução acima:

1) Se você usar um endereço IP dinâmico, precisará refazer as etapas acima, caso outro endereço IP tenha sido atribuído.

2) Você servidor agora tem uma porta aberta que você pode esquecer, mas esta porta aberta permanece um convite para os convidados indesejados.





iis-express