Habilitando IIS Express 8.0 para conexões remotas
Autor: Jone | Publicado: 2013-02-05T14:39:00-08:00


No decorrer do desenvolvimento de uma aplicação web, muitas vezes precisamos disponibilizar acesso remoto para outros computadores, seja para testes ou para apresentações. O Visual Studio até a versão 2010 tínhamos somente o Cassini, um servidor HTTP integrado ao ASP.NET embutido para fins de desenvolvimento mas que só permite conexões locais e se quiséssemos permitir acesso remoto teríamos que publicar o projeto em uma versão full do IIS. A partir do service pack 1 do Visual Studio 2010 e no Visual Studio 2012, temos a disposição outra opção de servidor web: o IIS Express, que é muito semelhante à versão full, mas muito superior ao Cassini, que permite acesso remoto e suportando inclusive HTTPS/SSL.



Para habilitar o IIS Express, basta clicar com o botão direito sobre a aplicação Web e em seguida clicar em "Use IIS Express".











Ao rodar a aplicação, podemos ver o ícone do IIS no System Tray, e verificamos a porta em que a aplicação está rodando.



Para cada aplicação que é configurada para rodar com IIS Express, uma nova entrada com as configurações da aplicação é inserida no arquivo de configuração do IIS Express, que fica localizado por padrão na pasta de documentos\IIS Express\config\applicationhost.config&nbsp;



Para habilitar acesso remoto, o HTTP.SYS precisa autorizar o acesso a um determinado endereço e porta. Execute os seguintes passos para isso: Primeiro encerre o IIS Express. Em seguida, abra um prompt de comando com permissões de administrador e digite:&nbsp;



netsh http add urlacl url=http://ip-do-computador:porta/ user=Todos



Obviamente, substitua com o ip do computador local e a porta em que a aplicação foi configurada, por exemplo, url=http://192.168.0.2:38920.



A mensagem que o comando retorna deve ser: "Reserva de URL adicionada com êxito".



Agora, é necessário alterar o arquivo de configuração&nbsp;applicationhost.config&nbsp;do IIS Express. Abra-o num editor de texto (notepad) e procure as linhas que contém a configuração da aplicação.
&lt;site name="WebApplication1" id="134232"&gt;&nbsp; &nbsp; &lt;application path="/"&gt;&nbsp; &nbsp; &nbsp; &nbsp; &lt;virtualDirectory path="/" physicalPath="C:\WebApplication1" /&gt;&nbsp; &nbsp; &lt;/application&gt;&nbsp; &nbsp; &lt;bindings&gt;

&nbsp; &nbsp; &nbsp; &nbsp; &lt;binding protocol="http" bindingInformation="*:38920:localhost" /&gt;&nbsp; &nbsp; &lt;/bindings&gt;&lt;/site&gt;



Em binding protocol, substitua&nbsp;localhost&nbsp;pelo IP do computador. &nbsp;A linha deve ficar assim:



&lt;binding protocol="http" bindingInformation="*:38920:192.168.0.2" /&gt;



Feito isso, é necessário adicionar uma regra no firewall para permitir que o IIS Express utilize a porta ou então desabilitar o firewall temporariamente.



Agora é só iniciar o IIS Express com um comando de linha:



C:\Program Files\IIS Express&gt;iisexpress.exe /site:WebApplication1



Substitua o WebApplication1 com o nome da aplicação (de acordo com o arquivo de configuração do IIS Express).



Se tudo estiver correto, o IIS estará escutando na porta que foi configurada. Basta agora acessar a aplicação pelo endereço IP e porta da sua máquina.



http://192.168.0.2:38920/



Lembre-se de alterar no Visual Studio o endereço da página inicial, removendo a palavra localhost e substituindo com o endereço IP.



Para desautorizar o acesso remoto, basta remover a regra do firewall ou habilitá-lo novamente, caso tenha sido desabilitado. Em seguida, altere o arquivo de configuração, colocando localhost ao invés do ip, e execute o comando a seguir para desautorizar o acesso à nível de HTTP.SYS:





C:\Program Files\IIS Express&gt;netsh http delete urlacl url=http://192.168.0.2:38920/



Reserva de URL excluída com êxito



Posts recomendados:&nbsp;Working with SSL at Development Time is easier with IISExpress