No desenvolvimento Web é muito comum a publicação de um Web site no IIS (Internet Information Services) de um Windows Server.
Porém, sabemos que não é tão simples a configuração de um Windows Server e a disponibilização de um IIS público, principalmente para quem não trabalha ou não tem conhecimento em infraestrutura, sem falar dos custos e da burocracia em obter uma máquina que geralmente é usada para testes. Mas vamos mostrar aqui como o desenvolvedor pode disponibilizar um Windows Server com IIS para sua aplicação dentro do Microsoft Azure.
Para esse exemplo usaremos o Windows Server 2008 R2 com IIS 7.
Criação da Virtual Machine
Para criar uma VM acesse o site do Azure (https://manage.windowsazure.com/), selecione no menu lateral da esquerda a opção VIRTUAL MACHINES e clique no botão +NEW no canto inferior esquerdo (criar uma conta gratuita de avaliação).
No painel de escolha do modo de criação, selecione a opção FROM GALLERY.
O Azure irá mostrar uma lista de imagens que podem ser adicionadas, para esse exemplo vamos utilizar o Windows Server 2008 R2 SP1 e avance para a próxima aba.
Adicione um nome para a VM, escolha qual o tamanho dela (processador e memória) e configura um usuário e senha. Avance para a próxima aba.
Escolha um DNS para a sua VM (guarde esse DNS pois iremos utilizá-lo mais a frente) e adicione um End Point para HTTP, com a porta pública e privada como 80. Avance e conclua a configuração da máquina virtual.
A sua máquina virtual entrará em modo de criação e em alguns minutos vai estar no ar.
Configuração do IIS
Agora precisamos configurar o IIS no Windows Server para receber a nossa aplicação Web. Conecte na máquina virtual recém criada, para isso acesse no menu inferior a opção CONNECT para baixar um .rdp para acesso a VM.
Abra o arquivo que foi feito download e acesse sua máquina virtual remotamente, e abra o Server Manager que fica ao lado o menu iniciar.
Clique com o botão direito em Features e selecione a opção Add Features.
Selecione a opção .NET Framework 3.5.1 Features.
Logo após selecionar essa opção será exibida a tela de confirmação e informação dos itens que serão adicionados, que por sinal, um deles é o IIS (Internet Information Services). Clique no botão Add Required Role Services e avance.
Em Role Services selecione os itens IIS Management Console, IIS Management Scripts and Tools e Management Service.
Avance até começar a instalação.
Após a instalação do .NET Framework e do IIS, precisamos instalar o Microsoft Web Deploy (https://www.microsoft.com/web/gallery/install.aspx?appid=WDeploy), com isso podemos instalar todas as dependências e configurações necessárias para liberar o IIS externamente.
Com o Web Deploy instalado procure por recommended na barra de busca do canto superior direito. Adicione o item Recommended Server Configuration for Web Hosting Providers.
Note que serão adicionados 13 itens para instalação, clique em Items to be installed e remova todos os itens, deixando apenas o Recommended Server Configuration for Web Hosting Providers.
Após a instalação, abra a janela executar (windows + r) e digite o comando inetmgr.
O gerenciador do IIS do Windows Server está instalado.
Para testar o acesso ao seu IIS, acesse pelo browser, fora da máquina virtual, o DNS da máquina virtual (criamos o DNS na configuração da VM no Azure).
Pronto, nosso IIS já está disponível externamente, agora precisamos criar um novo site para poder fazer o deploy da aplicação Web.
No IIS Manager, clique com o botão direito no item Sites e clique na opção Add Web Site…
Adicione um nome para o seu site e um diretório que será feito o deploy do conteúdo.
Com o novo site criado no IIS, já poderemos fazer a publicação pelo Visual Studio através de nossa máquina de desenvolvimento.
Configuração do Visual Studio
Para esse exemplo estamos usando o Visual Studio 2015 Community.
Na solution da aplicação, clique com o botão direito sobre o projeto Web e acione a opção Publish…
Selecione a opção Custom nas opções de publicação.
Adicione um nome para esse perfil de publicação.
Agora precisamos adicionar as informações para conexão:
Publish method: Vamos usar Web Deploy como método de publicação
Server: O DNS da máquina virtual
Site name: Nome do site que criamos anteriormente no IIS
User name: Nome de usuário que usamos para logar na máquina virtual
Password: Senha do usuário
Destination URL: Server + Site name
Clique no botão Validate Connection para garantir que está tudo correto. Clique no botão Next.
Selecione se o deploy será feito em modo Release ou Debug. Acione o botão Publish.
Após a publicação o Visual Studio abrirá o browser automaticamente apontando para o IIS da máquina virtual com a aplicação Web publicada.
Pronto, seu projeto Web já possui um deploy remoto configurado, para publicar novas versões basta acionar o Publish novamente.
Qualquer dúvida ou sugestão deixem nos comentários.
Até a próxima!