Exporter (0) Imprimer
Développer tout

Procédure : Héberger un service sur Azure accédant à Service Bus

Mis à jour: septembre 2014

La création d'une application de service exécutée sous suit les schémas de programmation d'une application et d'une application Microsoft Azure Service Bus traditionnelle : vous définissez et implémentez le contrat de service, configurez le point de terminaison, créez les informations d'identification, puis démarrez l'hôte. Lorsque vous avez terminé, vous arrêtez l'hôte. Notez toutefois que la création d'un service sous soulève deux problèmes :

  • ne stocke pas les informations de configuration Service Bus et Access Control dans le fichier Machine.config

    Comme n'installe pas le Kit de développement logiciel (SDK) , le fichier Machine.config de l'ordinateur ne dispose d'aucune information sur les liaisons ou points de terminaison Service Bus. Comme indiqué précédemment, les restrictions de sécurité vous empêchent de modifier le fichier Machine.config de . Par conséquent, deux options sont disponibles pour permettre à vos applications Service Bus de disposer des informations de configuration Access Control et Service Bus.

    1. La solution recommandée est d'utiliser les API Service Bus pour configurer votre application par programme. Par exemple, bien qu'il soit possible de stocker les informations de nom et de mot de passe dans le fichier App.config, il est préférable de définir les configurations de liaison de relais par programme. Pour plus d'informations sur la configuration par programme, consultez la page Configuration d'un service WCF pour s'inscrire auprès de Service Bus.

    2. La deuxième solution consiste à modifier manuellement le fichier App.config de votre application en y ajoutant toutes les informations pertinentes. Vous pouvez ensuite utiliser le fichier App.config pour configurer les liaisons et les points de terminaison. Pour ce faire, accédez au fichier Machine.config sur un ordinateur où le Kit de développement logiciel (SDK) est installé, recherchez l'ensemble des informations de configuration et copiez-les dans le fichier App.config de votre application. Vous pourrez ainsi utiliser le fichier App.config sur le service hôte, mais votre code sera difficile à tester : vous risquez de rencontrer des problèmes de duplication avec le fichier Machine.config de l'ordinateur de test local, sur lequel le Kit de développement logiciel (SDK) est déjà installé. Par conséquent, nous vous recommandons d'utiliser l'option précédente et de tout définir par programme.

  • Service Bus Service Bus doit disposer d'une autorisation Confiance totale pour s'exécuter sous

    Comme pour toutes les autres applications Service Bus, vous devez vérifier que le système d'exploitation est exécuté avec l'autorisation Confiance totale. Celle-ci peut être définie dans le fichier ServiceDefinition.csdef de votre projet en utilisant la procédure suivante.

  1. Dans l'Explorateur de solutions, sous le nœud WorkerRole ou WebRole (selon l'emplacement de votre code), ajoutez l'assembly Microsoft.ServiceBus.dll à votre projet en guise de référence.

    Cette étape correspond au processus standard d'ajout d'une référence à un assembly.

  2. Dans le dossier Référence, cliquez avec le bouton droit sur Microsoft.ServiceBus. Cliquez ensuite sur Propriétés.

  3. Dans la boîte de dialogue Propriétés, définissez Copie locale sur True.

    L'assembly Microsoft.ServiceBus.dll sera ainsi copié dans le dossier \bin local et accessible à votre application exécutée sous .

  1. Dans le fichier ServiceDefinition.csdef de votre projet, définissez le champ enableNativeCodeExecution sur "true", comme illustré dans le code suivant. Remplacez "ApplicationNameHere" par le nom de votre application :

    <?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>
    
    

Afficher:
© 2014 Microsoft