Exporter (0) Imprimer
Développer tout

Chaînes de connexion de configuration

Mis à jour: avril 2015

Microsoft Azure prend en charge un ensemble d'API managées qui fournissent un moyen cohérent de créer des instances de clients de services Azure (telles que Service Bus) parmi les services cloud Microsoft. Ces API permettent d'instancier ces clients (par exemple, CloudBlobClient, SubscriptionClient, TopicClient) indépendamment de l'emplacement dans lequel l'application est hébergée : localement, dans un service cloud Microsoft, dans des sites web ou dans un rôle de machine virtuelle persistante. Vous pouvez aussi utiliser ces API pour extraire les informations de configuration nécessaires à l'instanciation de ces clients et pour modifier la configuration sans avoir à redéployer l'application appelante. Les API se trouvent dans la classe CloudConfigurationManager.

Pour instancier un client (par exemple, QueueClient), vous pouvez représenter les informations de configuration sous la forme d'une chaîne de connexion. Azure prend en charge une classe CloudConfigurationManager qui extrait la chaîne de connexion du fichier de configuration. Du côté client, pour chacun des différents types de clients, il existe une méthode qui instancie ce type de client à l'aide de cette chaîne de connexion. Pour Service Bus, il s'agit des méthodes suivantes :

Par exemple, étant donné la section de configuration suivante :

<appSettings>
    <add key="Microsoft.ServiceBus.ConnectionString" 
        value="Endpoint=sb://[namespace].servicebus.windows.net; SharedSecretIssuer=owner;SharedSecretValue=someSecret"/>
</appSettings>

Le code suivant extrait la chaîne de connexion, crée une file d'attente et initialise la connexion à la file d'attente :

QueueClient Client; 

string connectionString = AzureConfigurationManager.AppSettings.GetSetting("Microsoft.ServiceBus.ConnectionString");
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString); 

if (!namespaceManager.QueueExists(QueueName))
    {
        namespaceManager.CreateQueue(QueueName);
    }

// Initialize the connection to Service Bus Queue
Client = QueueClient.CreateFromConnectionString(connectionString, QueueName);

Outre l'utilisation de chaînes de connexion dans un fichier de configuration pour établir une connexion à Service Bus, il existe des situations dans lesquelles vous devez spécifier de manière explicite les paramètres d'entrée nécessaires pour se connecter à Service Bus. Service Bus définit une classe d'assistance, ServiceBusConnectionStringBuilder, qui vous permet de générer des chaînes de connexion dans le code.

Dans votre code, identifiez les paramètres de connexion (à l'aide d'un fichier de configuration ou d'une autre manière). Ensuite, utilisez la classe d'assistance ServiceBusConnectionStringBuilder pour établir une connexion à Service Bus. Par exemple, le code suivant crée une chaîne de connexion pour être utilisée avec Service Bus :

var serviceConnection = new ServiceBusConnectionStringBuilder();
serviceConnection.Endpoints.Add(new Uri("sb://test-namespace.servicebus.windows.net"));
serviceConnection.SharedSecretIssuerName = "owner";
serviceConnection.SharedSecretIssuerSecret = "0dteeO3/apkXXXXXXXXXXXXXXXXXXXXXXXXXXXT2G0=";

Le code suivant crée une chaîne de connexion avec une clé SAS :

QueueClient client = QueueClient.CreateFromConnectionString("Endpoint=sb://[namespace].servicebus.windows.net/ServiceBusDefaultNamespace; RuntimePort=9354;ManagementPort=9355; SharedAccessKeyName=”RootManageSharedAccessKey”;SharedAccessKey=SASkey");

La classe d'assistance ServiceBusConnectionStringBuilder vous permet de créer des chaînes de connexion pour différents scénarios. Les sections suivantes contiennent des exemples.

L'exemple suivant génère une chaîne de connexion de la forme

“Endpoint=sb://fjprod-tat-001-monitor1.servicebus.wa.fj-cloud.net/;StsEndpoint=https://fjprod-tat-001-monitor1-sb.accesscontrol.wa.fj-cloud.net/;SharedSecretIssuer=owner;SharedSecretValue=0dteeO3/apkXXXXXXXXXXXXXXXXXXXXXXXXXXXT2G0=”
var serviceCustomConnection = new ServiceBusConnectionStringBuilder();
serviceCustomConnection.Endpoints.Add(new Uri("sb://fjprod-tat-001-monitor1.servicebus.wa.fj-cloud.net/"));
serviceCustomConnection.StsEndpoints.Add(new Uri("https://fjprod-tat-001-monitor1-sb.accesscontrol.wa.fj-cloud.net/"));
serviceCustomConnection.SharedSecretIssuerName = "owner";
serviceCustomConnection.SharedSecretIssuerSecret = "0dteeO3/apkXXXXXXXXXXXXXXXXXXXXXXXXXXXT2G0=";

L'exemple suivant génère une chaîne de connexion de la forme

"Endpoint=sb://computer1/test-namespace;StsEndpoint=https://computer1:9355/test-namespace;RuntimePort=9354;ManagementPort=9355"
var serverLogonConnection = new ServiceBusConnectionStringBuilder();
serverLogonConnection.Endpoints.Add(new Uri("sb://computer1/test-namespace"));
serverLogonConnection.StsEndpoints.Add(new Uri("https://computer1:9355/test-namespace"));
serverLogonConnection.RuntimePort = 9354;
serverLogonConnection.ManagementPort = 9355;

L'exemple suivant génère une chaîne de connexion de la forme

"Endpoint=sb://computer1/test-namespace,sb://computer2/test-namespace;StsEndpoint=https://computer1:9355/test-namespace,https://computer2:9355/test-namespace;RuntimePort=9354;ManagementPort=9355"
var serverMultiEndpointsConnection = new ServiceBusConnectionStringBuilder();
serverMultiEndpointsConnection.Endpoints.Add(new Uri("sb://computer1/test-namespace"));
serverMultiEndpointsConnection.Endpoints.Add(new Uri("sb://computer2/test-namespace"));
serverMultiEndpointsConnection.StsEndpoints.Add(new Uri("https://computer1:9355/test-namespace"));
serverMultiEndpointsConnection.StsEndpoints.Add(new Uri("https://computer2:9355/test-namespace"));
serverMultiEndpointsConnection.RuntimePort = 9354;
serverMultiEndpointsConnection.ManagementPort = 9355;

L'exemple suivant génère une chaîne de connexion de la forme

"Endpoint=sb://computer1/test-namespace;StsEndpoint=https://computer1:9355/test-namespace;RuntimePort=9354;ManagementPort=9355;WindowsUsername=testUser;WindowsDomain=redmond;WindowsPassword=password"
var serverDomainConnection = new ServiceBusConnectionStringBuilder();
serverDomainConnection.Endpoints.Add(new Uri("sb://computer1/test-namespace"));
serverDomainConnection.StsEndpoints.Add(new Uri("https://computer1:9355/test-namespace"));
serverDomainConnection.RuntimePort = 9354;
serverDomainConnection.ManagementPort = 9355;
serverDomainConnection.WindowsCredentialDomain = "redmond";
serverDomainConnection.WindowsCredentialUsername = "testUser";
serverDomainConnection.WindowsCredentialPassword = securePassword;

L'exemple suivant génère une chaîne de connexion de la forme

"Endpoint=sb://computer1/test-namespace;StsEndpoint=https://computer1:9355/test-namespace;RuntimePort=9354;ManagementPort=9355;WindowsUsername=testUser;WindowsDomain=<Your domain name>;WindowsPassword=password"
var serverLocalUserConnection = new ServiceBusConnectionStringBuilder();
serverLocalUserConnection.Endpoints.Add(new Uri("sb://computer1/test-namespace"));
serverLocalUserConnection.StsEndpoints.Add(new Uri("https://computer1:9355/test-namespace"));
serverLocalUserConnection.RuntimePort = 9354;
serverLocalUserConnection.ManagementPort = 9355;
serverLocalUserConnection.WindowsCredentialDomain = Environment.ComputerName;
serverLocalUserConnection.WindowsCredentialUsername = "testUser";
serverLocalUserConnection.WindowsCredentialPassword = securePassword;

L'exemple suivant génère une chaîne de connexion de la forme

"Endpoint=sb://computer1/test-namespace;RuntimePort=9354;ManagementPort=9355"
var serverAnonymousConnection = new ServiceBusConnectionStringBuilder();
serverAnonymousConnection.Endpoints.Add(new Uri("sb://computer1/test-namespace"));
serverAnonymousConnection.RuntimePort = 9354;
serverAnonymousConnection.ManagementPort = 9355;

Voir aussi

Afficher:
© 2015 Microsoft