Como posso ativar solicitações remotas no IIS Express? Scott Guthrie escreveu que isso é possível, mas ele não disse como.
c#
asp.net
iis-express
TedTel
fonte
fonte
Respostas:
Agora, há uma postagem de blog no site da equipe do IIS explicando como habilitar conexões remotas no IIS Express . Aqui está a parte pertinente desse post resumida:
fonte
netsh
comando para permitir conexões em qualquer nome de host?user={PARAM_USER}
estará no seu próprio idioma.user=todos
vez deuser=everyone
.Você pode precisar fazer três alterações.
.config
arquivo Tipicamente:$(solutionDir)\.vs\config\applicationhost.config
%userprofile%\My Documents\IISExpress\config\applicationhost.config
Encontre o elemento de ligação do seu site e adicione
Onde
everyone
é um grupo do Windows. Use aspas duplas para grupos com espaços como "Tout le monde".Permita o IIS Express através do firewall do Windows.
Agora, quando você iniciar,
iisexpress.exe
você verá uma mensagem comofonte
users=everyone
paranetsh
(segunda etapa) poderá causar o erro 1789. A solução é traduzireveryone
para o nome do grupo correspondente no seu idioma.Project Url
, se eu inserir um asterisco para o nome do host, ocorrerá um erro. Se eu inserir mais alguma coisa, ele tenta criar um novo diretório virtual. Não está vinculado à entrada em application.config.bindingInformation="*:8080:hostname"
e 2url=http://hostname:8080/
e nas propriedades do projeto da Web do Visual Studio na guia Web, defina URL do Projeto comohttp://hostname:8080/
. Exclua o*
urlacl se você já criou um; não funcionará se você tiver os dois. Por fim, o URL que você acessa no navegador da web deve fazer referência ao nome do host, não ao host local.<binding protocol="http" bindingInformation="*:8080:localhost" />
Lembro-me de ter os mesmos problemas ao tentar esse fluxo de trabalho há alguns meses.
É por isso que escrevi um utilitário proxy simples especificamente para esse tipo de cenário: https://github.com/icflorescu/iisexpress-proxy .
Usando o IIS Express Proxy , tudo se torna bastante simples - não é necessário “netsh http add 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 .
Na maioria das vezes mais simples é melhor.
fonte
Nada funcionou para mim até que eu encontrei o iisexpress-proxy .
Abra o prompt de comando como administrador e execute
então
supondo que seu projeto do Visual Studio seja aberto no localhost: 51123 e você deseja acessar o endereço IP externo xxxx: 81
Editar: atualmente estou usando
ngrok
fonte
Como uma nota lateral para isso:
Isso funcionará apenas nas versões em inglês do Windows. Se você estiver usando uma versão localizada, precisará substituir "todos" por outra coisa, por exemplo:
Caso contrário, você receberá um erro (falha na criação do SDDL, erro: 1332)
fonte
Um bom recurso é Trabalhar com SSL no Tempo de Desenvolvimento é mais fácil com o IISExpress de Scott Hanselman.
O que você procura é a seção Obtendo o IIS Express para servir externamente pela Porta 80
fonte
Se você estiver trabalhando com o Visual Studio, siga estas etapas para acessar o IIS-Express sobre endereço IP:
ipconfig
na linha de comando do WindowsVamos para
Encontrar
Adicione:
<binding protocol="http" bindingInformation="*:62549:192.168.178.108"/>
com seu endereço IP
fonte
Eu o resolvi com a instalação do "Conveyor by Keyoti" no Visual Studio Professional 2015. O transportador gera um endereço REMOTE (seu IP) com uma porta (45455) que permite solicitação externa. Exemplo:
O Transportador permite testar aplicativos da Web de tablets e telefones externos na 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
fonte
Se você tentou a resposta do Coronel Panic, mas não funciona no Visual Studio, tente o seguinte:
Anexe outro
<binding />
na sua configuração do IIS ExpressPor fim, você precisa executar o Visual Studio como Admin
fonte
O que me ajudou foi clicar com o botão direito do mouse no ícone 'IISExpress', 'Mostrar todos os aplicativos'. Depois, selecionando o site e vi qual aplicationhost.config ele usa, e a correção foi perfeita.
fonte
Foi o que fiz no Windows 10 com o Visual Studio 2015 para habilitar o acesso remoto, tanto com http quanto 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 para baixo até encontrar algo parecido com isto:Adicione duas novas ligações em
bindings
. Você também pode usar HTTPS se desejar:Adicione a seguinte regra ao seu firewall, abra um novo
cmd
prompt como administrador e execute os seguintes comandos:Agora inicie o Visual Studio como
Administrator
. Clique com o botão direito do mouse no arquivo de projeto de projetos da web e selecioneProperties
. Vá para aWeb
guia e clique emCreate Virtual Directory
. Se o Visual Studio não for executado como administrador, isso provavelmente falhará. Agora tudo deve funcionar.fonte
A resposta aceita para esta pergunta é um guia para fazer o IIS Express funcionar 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 fazê-lo funcionar.
fonte
Você pode tentar configurar o encaminhamento de porta em vez de modificar a configuração do IIS Express, adicionando novas regras HTTP.sys ou executando o Visual Studio como administrador.
Basicamente, você precisa encaminhar o
IP:PORT
site para outra porta gratuita em sua máquina, mas no adaptador de rede externo, não no host local.O problema é que o IIS Express (pelo menos no Windows 10) se liga ao
[::1]:port
significado de ouvir na porta IPv6. Você precisa levar isso em conta.Aqui está como eu fiz esse trabalho - http://programmingflow.com/2017/02/25/iis-express-on-external-ip.html
Espero que ajude.
fonte
A maneira mais simples e legal de encontrar foi usar (demora 2 minutos para configurar):
https://ngrok.com/
Ele funcionará com qualquer coisa em execução no host local. Basta inscrever-se, executar um pouco flexível e o que você executar no localhost obtém uma URL pública que você pode acessar de qualquer lugar.
Isso é bom para mostrar coisas aos colegas de equipe remotos, sem mexer na configuração do IIS ou nos firewalls. Deseja parar o acesso apenas finalize o executável.
assumindo que 89230 é sua porta do IIS Express
Você também pode executar várias portas, mesmo em plano gratuito
fonte
Estou com alguns problemas ao usar o IIS Express no Windows 8.1 e solicitação externa.
Sigo estas etapas para depurar a solicitação externa:
Está funcionando!
fonte
Se você executar o Visual Studio no Admin, poderá adicionar apenas
<binding protocol="http" bindingInformation="*:8080:*" />
ou
<binding protocol="https" bindingInformation="*:8443:*" />
para dentro
fonte
$(SolutionDir).vs\config\applicationHost.config
e também tive que abrir a porta (8443) do aplicativo no firewall do Windows.Eu tinha um IIS local ativado, então eu apenas criei uma regra de reescrita para minha porta de depuração ... Eu acho que isso é melhor e mais legal que outro método, porque é mais fácil remover uma vez que o desenvolvimento seja concluído ... Aqui está a aparência da reescrita. .
O VS também permite que você desenvolva usando o IIS local diretamente (o que permite conexões remotas), mas, por sua vez, você sempre deve executá-lo como administrador ... Eu não gosto disso.
fonte
Resolvi esse problema usando a abordagem de proxy reverso.
Instalei o servidor wamp e usei o recurso proxy reverso simples do servidor web apache.
Adicionei uma nova porta para ouvir o servidor da web Apache (8081). Em seguida, adicionei a configuração de proxy como host virtual para essa porta.
fonte
Eu fiz todas essas etapas e nada me ajudou. E o que eu preciso é apenas para executar meu aplicativo via IIS Express ...
Espero que ajude.
fonte
Não foi possível atender às solicitações do iis a outros usuários na minha rede local; tudo o que eu precisava fazer (além do acima) era reiniciar o roteador do BT Hub.
fonte
Isso é incrivelmente impressionante e até cobre HTTPS com nomes de domínio bastante:
http://www.hanselman.com/blog/WorkingWithSSLAtDevelopmentTimeIsEasierWithIISExpress.aspx
As partes realmente impressionantes que não encontrei em nenhum outro lugar no SO, caso o link acima desapareça:
O utilitário acima registrará o certificado SSL para você! Se você usar a opção -UseSelfSigned, é super fácil.
Se você deseja fazer as coisas da maneira mais difícil, a parte não óbvia é que você precisa informar ao HTTP.SYS qual certificado usar, desta forma:
Certhash é a "Impressão digital" que você pode obter nas propriedades do certificado no MMC.
fonte
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) Regra de entrada definida no firewall para permitir a porta específica para o tipo de protocolo: tcp
3) Adicione o seguinte comando para adicionar a configuração de rede à sua porta: netsh http add urlacl url = http: // *: 8888 / user = everyone
fonte
Outra maneira de acessar solicitações externas é usar o IIS em vez do IIS Express. No meu estúdio visual, eu posso simplesmente mudar facilmente.
fonte
[caixa de diálogo de propriedades do projeto]
Para desenvolvimento usando o VisualStudio 2017 e um projeto de API 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 Debug
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 irá nesse caso fazer 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) O servidor agora possui uma porta aberta que você pode esquecer, mas essa porta aberta permanece um convite para convidados indesejados.
fonte