Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Como: Hospedar um serviço no Azure que acessa o Barramento do Serviço

Como: Hospedar um serviço no Azure que acessa o Barramento do Serviço

Atualizado: junho de 2015

Criar um aplicativo de serviço que seja executado no Microsoft Azure segue os padrões de programação de um aplicativo do Azure e um aplicativo Barramento do Serviço tradicional: você define e implementa o contrato de serviço, configura o ponto de extremidade, cria as credenciais e, então, inicia o host. Quando tiver concluído, você interrompe o host. Entretanto, observe que existem dois problemas exclusivos ao criar um serviço no Azure:

  • O Azure não armazena informações de configuração do Barramento do Serviço e Access Control no arquivo Machine.config

    Como o Azure não instala o SDK do Azure, o arquivo Machine.config em um computador Azure não possui informações sobre as associações ou pontos de extremidade do Barramento do Serviço. Como dito anteriormente, as restrições de segurança do Azure impedem a alteração do arquivo Machine.config do Azure. Portanto, existem duas opções para tornar as informações de configuração do Barramento do Serviço e Access Control disponíveis para seus aplicativos do Barramento do Serviço.

    1. A solução recomendada é usar as APIs do Barramento do Serviço para configurar de forma programática o seu aplicativo. Por exemplo, embora seja possível armazenar informações de nome e senha no arquivo App.config, você definiria programaticamente qualquer configuração de associação de retransmissão. Para obter mais informações sobre a definição de configurações programaticamente, consulte Configurar um serviço WCF para se registrar no Barramento do Serviço.

    2. A segunda solução é modificar manualmente o arquivo App.config do seu aplicativo através da adição de todas as informações relevantes. Uma vez que isso tenha sido feito, será possível usar o arquivo App.config para configurar as associações e os pontos de extremidade. Para isso, basta visualizar o arquivo Machine.config em um computador que tenha o SDK do Azure instalado, encontrar todas as informações de configuração relacionadas ao Azure copiá-las para o seu arquivo App.config. Ao mesmo tempo em que isso permitirá o uso do arquivo App.config no serviço do host, será difícil testar o código: pode ser que ocorram problemas de duplicação com o arquivo Machine.config do computador de teste local, que já terá o SDK do Azure instalado. Portanto, recomendamos usar a opção anterior e configurar tudo de forma programática.

  • O Barramento do Serviço Barramento do Serviço deve ter a autorização Confiança Total para executar no Azure

    Assim como com todos os outros aplicativos do Barramento do Serviço, você precisa garantir que o sistema operacional esteja executando com a autorização Confiança Total. Isso pode ser definido no arquivo Servicedefinition.csdef do seu projeto do Azure, usando o procedimento a seguir.

  1. Em Solution Explorer, no nó WorkerRole ou WebRole (dependendo de onde seu código está), adicione o assembly Microsoft.ServiceBus.dll ao seu projeto do Azure como referência.

    Esta etapa é o processo padrão para adicionar uma referência a um assembly.

  2. Na pasta Referência, clique com o botão direito do mouse em Microsoft.ServiceBus. A seguir, clique em Propriedades.

  3. Na caixa de diálogo Propriedades, defina Copy Local como True.

    Ao fazer isso, você garantirá que o assembly Microsoft.ServiceBus.dll seja copiado para o caminho /bin local e fique disponível para o seu aplicativo quando estiver sendo executando no Azure.

  1. No arquivo ServiceDefinition.csdef do seu projeto, defina o campo enableNativeCodeExecution como "true", como mostrado no código a seguir. Substitua "ApplicationNameHere" pelo nome de seu aplicativo:

    <?xml version="1.0" encoding="utf-8"?>
    <ServiceDefinition name="ApplicationNameHere" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
      <WebRole name="WebRole" enableNativeCodeExecution="true">
        <InputEndpoints>
          <!-- Must use port 80 for http and port 443 for https when running in the cloud -->
          <InputEndpoint name="HttpIn" protocol="http" port="80" />
        </InputEndpoints>
      </WebRole>
      <WorkerRole name="WorkerRole" enableNativeCodeExecution="true">
      </WorkerRole>
    </ServiceDefinition>
    
    

Mostrar:
© 2015 Microsoft