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
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:
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 applicationhost.config do IIS Express. Abra-o num editor de texto (notepad) e procure as linhas que contém a configuração da aplicação.
<site name="WebApplication1" id="134232">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\WebApplication1" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:38920:localhost" />
</bindings>
</site>
</bindings>
</site>
Em binding protocol, substitua localhost pelo IP do computador. A linha deve ficar assim:
<binding protocol="http" bindingInformation="*:38920:192.168.0.2" />
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>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>netsh http delete urlacl url=http://192.168.0.2:38920/
Reserva de URL excluída com êxito
Posts recomendados: Working with SSL at Development Time is easier with IISExpress