Estou tentando testar um site em execução em uma instância local IISExpress com algumas outras máquinas / dispositivos na minha rede local. Estou executando o Win7 Pro.
Quando tento procurar a minha máquina pela primeira vez em outra máquina no meu segmento de rede local, recebo um erro 400: Nome do host inválido.
Entendo que preciso conceder acesso remoto à ACL com um comando no prompt de comando elevado, como:
netsh http add urlacl url=http://mymachinename:50333/ user=everyone
Agora, recebo um erro de serviço 503 indisponível.
No momento, o Firewall do Windows está desligado e posso procurar minha instância local do IISExpress com o endereço http://localhost:50333
Qual é a peça final deste quebra-cabeça de configuração?
iis-express
Jeff Fritz
fonte
fonte
http://mymachinename:50333/
partir de seu computador?Respostas:
Parece que está faltando uma entrada de informações de ligação no arquivo applicationhost.config.
Abra o arquivo applicationhost.config. Os locais possíveis são:
%userprofile%\Documents\IISExpress\config\applicationhost.config
$(solutionDir)\.vs\config\applicationhost.config
(VS2015)iisexpress.exe
para ter certeza.Localize a entrada do site e adicione a seguinte ligação ao nome da sua máquina.
Reinicie o IIS Express
fonte
iisexpress.exe
cuidado para ver qual arquivo de configuração está usando.Havia apenas uma coisa que funcionou para mim.
usar
*:portnumber:*
não era bom. Sim, depois de fazer isso e garantir que o Firewall do Windows estivesse aberto, eu poderia conectar-me à porta, mas ainda assim recebi o erro "503".Testei algumas coisas localmente e descobri que apenas http: // localhost funcionava. Usando o endereço IP real (não 127.0.0.1, mas, por exemplo, 192.168.1.50), ainda retornava um 503 mesmo na máquina local. Tentei usar o nome do host real nas ligações, mas o IIS Express se recusou a iniciar. Isso pode realmente ter algo a ver com a forma como o nome do host estava sendo resolvido. Eu não explorei isso mais.
Por fim, acabei usando esta configuração:
Dessa maneira, eu consegui me conectar de uma máquina remota usando
http://192.168.1.50:53351
.fonte
<binding protocol="https" bindingInformation="*:44300:*" />
<binding protocol="http" bindingInformation="*:8888:*" />
edit: realmente tentei entender a remarcação SO, saí :).Depois de desperdiçar mais de 3h em um assunto tão completo, decidi compartilhar minha configuração com você. Minha configuração é o Visual Express 2012 para atualização da Web 4 no Windows 8. Essa foi a primeira vez que voltei ao MS VS desde os estudos (pelo menos 8 anos) e agora tenho certeza de que o linux governa. No django, esse tipo de configuração levou 10 minutos de pesquisa na documentação.
desativar o firewall para teste
ligações de configuração no meu caso, o endereço local é localIP = 192.168.1.102 (como os links não podem conter domínio não numérico, use-o abaixo em vez de mylocaldomain.com, consulte a política de stackoverflow) em
Documents\IISExpress\config\applicationhost.config
adicionar execução automática automaticamente ao serviço de início ISS Express
Adicione algumas regras estranhas ao servidor http (ainda não sei se isso é necessário)
execute o IISExpress manualmente, não no VS IDE
http://mylocaldomain.com:53351
Se o estiver funcionando, podemos adicionar uma regra de firewalladicionar regra de firewall
configure remoteip para any se desejar acessar seu servidor de outro mundo se desejar acessar para a rede local use localsubnet
iniciar firewall
verifique novamente se tudo está funcionando no IP local e público
Desejo-te sorte
Rafal
fonte
netsh http delete urlacl url=http://*:55416/
(substitua porta com a porta)localhost
. Descobri que o nome da máquina convidada (Windows) precisava estar nas ligaçõesapplicationhost.config
e, no host (Mac), o nome da máquina convidada precisava ser mapeado para127.0.0.1
dentro/etc/hosts
. Somente então uma solicitação para a máquina convidada no host foi bem-sucedida.Constatou que o problema tinha a ver com um mapeamento urlacl ruim. Para descobrir isso:
e procure por coisas como
http://+:80/
ou a porta à qual você está vinculando.Então use
Isso corrigiu o problema para mim.
fonte
netsh http delete urlacl <yoururl>
Nada funcionou para mim. Finalmente eu encontrei o iisexpress-proxy
Veja minha resposta https://stackoverflow.com/a/33623399/631527
Outra solução é
ngrok
fonte
3028
. Eu corriiisexpress-proxy 3028 to 12345
e depois./ngrok.exe http 12345
. ReO 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
O problema está atualizando o arquivo applicationhost.config dentro da pasta da Web em vez da solução. O arquivo de configuração da solução é o único a alterar
fonte
Após a solução do @vikomall, não se esqueça de iniciar o VS como administrador. Isso corrige para mim.
fonte
Em relação à resposta de Anthony Rizzolo: no Windows 8.1, tive que digitar assim:
Por exemplo:
fonte
Nenhuma das respostas acima funcionou para mim.
Eu tive duas entradas no netsh para o mesmo serviço
netsh http show urlacl
Um usando um curinga forte, o outro usando um curinga fraco.
A remoção do que estava com o curinga fraco fez o trabalho.
Mais sobre o curinga forte e fraco no contexto de netsh
https://docs.microsoft.com/en-gb/windows/desktop/Http/urlprefix-strings
fonte