Wednesday, October 17, 2012

Como especificar uma porta específica para o deploy de uma Web Application

Estou trabalhando em uma solução de N camadas com arquitetura orientada a serviços Restful. Algo parecido com:





Cada um dos serviços implementa uma injeção de dependência no construtor, para chamar o serviço é necessário um código parecido com:

  using( var service = BusinessService.Factory.Service1(string URI))
 {
     //Do stuff

  }
 
A aplicação web por sua vez, tem no arquivo de configuração a declaração de todas as URIs necessárias, algo parecido com:

<appSettings>
  <add key="DataService1" value="http://localhost:1429/Service1/"/>
  <add key="BusinessService1" value="http://localhost:2573/Service1/"/>
</appSettings>

Um problema foi encontrado quando o projeto era iniciado em outras máquinas, no ambiente de desenvolvimento: O URI do serviço era alterado e invalidava os dados do arquivo de configuração.

Isso acontecia por quê o Visual Studio definia uma porta aleatória para a aplicação que disponibiliza os serviços. Pesquisando na MSDN, descobri que existe uma maneira de configurar uma porta fixa para cada um dos projetos WEB na solução:

  1. In Solution Explorer, right-click the name of the Web application project for which you want to specify a Web server, and then click Properties.
  2. In the Properties window, click the Web tab.
  3. To choose the Visual Studio Development Server, under Servers, click Use Visual Studio Development Server.
  4. To use a specific port number with the Visual Studio Development Server, select Specific port and enter the port number. By default, the Auto-assign Port option is selected, and the port number that has been assigned to your application appears.

Segue o Link, que também contém outras dicas: http://msdn.microsoft.com/en-us/library/ms178108(v=vs.100).aspx



No comments:

Post a Comment