Questa pagina è stata utile?
I suggerimenti relativi al contenuto di questa pagina sono importanti. Comunicaceli.
Altri suggerimenti?
1500 caratteri rimanenti
Esporta (0) Stampa
Espandi tutto

Paso 2: Creare le credenziali di gestione

Aggiornamento: marzo 2015

Questo è il secondo passaggio dell'esercitazione sulle funzionalità di messaggistica del Bus di servizio. In questo passaggio si definiscono le operazioni di gestione che verranno usate per creare le credenziali di tipo firma di accesso condiviso con cui l'applicazione verrà autorizzata.

  1. Per maggiore chiarezza, in questa esercitazione tutte le operazioni di accodamento sono inserite in un metodo separato. Creare un metodo Queue() nella classe Program sotto il metodo Main(). Ad esempio:

    public static void Main(string[] args)
    {
    …}
    static void Queue()
    {
    }
    
    
  2. Il passaggio successivo consiste nel creare una credenziale di tipo firma di accesso condiviso usando un oggetto TokenProvider. Il metodo di creazione accetta il nome dell'autorità emittente e la chiave della firma di accesso condiviso ottenuta nel metodo CollectUserInput(). Aggiungere il codice seguente al metodo Queue():

    static void Queue()
    {
        // Create management credentials
        TokenProvider credentials = TokenProvider.CreateSharedAccessSignatureTokenProvider(sasKeyName,sasKeyValue);
    }
    
    

  1. Creare un nuovo oggetto di gestione dello spazio dei nomi servizio con un URI contenente il nome dello spazio dei nomi servizio e le credenziali di gestione ottenute nell'ultimo passaggio come argomenti. Aggiungere questo codice direttamente sotto quello aggiunto nel passaggio precedente:

    NamespaceManager namespaceClient = new NamespaceManager(ServiceBusEnvironment.CreateServiceUri("sb", ServiceNamespace, string.Empty), credentials);
    

Esempio

A questo punto, il codice dovrebbe essere simile al seguente:

using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Threading;
using Microsoft.ServiceBus.Messaging;

namespace Microsoft.ServiceBus.Samples
{
  class Program
  {
    private static DataTable issues;
    private static List<BrokeredMessage> MessageList;
    private static string ServiceNamespace;
    private static string sasKeyName = "RootManageSharedAccessKey";
    private static string sasKeyValue;

    static void Main(string[] args)
    {
      // Populate test data
      issues = ParseCSVFile();
      MessageList = GenerateMessages(issues);

      // Collect user input
      CollectUserInput();

      // Add this call
      Queue();
    }

    static void Queue()
    {
      // Create management credentials
      TokenProvider credentials = TokenProvider.CreateSharedAccessSignatureTokenProvider(sasKeyName, sasKeyValue);
      NamespaceManager namespaceClient = new NamespaceManager(ServiceBusEnvironment.CreateServiceUri("sb", ServiceNamespace, string.Empty), credentials);
    }

    static DataTable ParseCSVFile()
    {
      DataTable tableIssues = new DataTable("Issues");
      string path = @"..\..\data.csv";
      try
      {
        using (StreamReader readFile = new StreamReader(path))
        {
          string line;
          string[] row;

          // create the columns
          line = readFile.ReadLine();
          foreach (string columnTitle in line.Split(','))
          {
            tableIssues.Columns.Add(columnTitle);
          }

          while ((line = readFile.ReadLine()) != null)
          {
            row = line.Split(',');
            tableIssues.Rows.Add(row);
          }
        }
      }
      catch (Exception e)
      {
        Console.WriteLine("Error:" + e.ToString());
      }

      return tableIssues;
    }

    static List<BrokeredMessage> GenerateMessages(DataTable issues)
    {
      // Instantiate the brokered list object
      List<BrokeredMessage> result = new List<BrokeredMessage>();

      // Iterate through the table and create a brokered message for each row
      foreach (DataRow item in issues.Rows)
      {
        BrokeredMessage message = new BrokeredMessage();
        foreach (DataColumn property in issues.Columns)
        {
          message.Properties.Add(property.ColumnName, item[property]);
        }
        result.Add(message);
      }
      return result;
    }

    static void CollectUserInput()
    {
      // User service namespace
      Console.Write("Please enter the service namespace to use: ");
      ServiceNamespace = Console.ReadLine();

      // Issuer key
      Console.Write("Please enter the issuer key to use: ");
      sasKeyValue = Console.ReadLine();
    }
  }
}























































































Nel passaggio successivo creare la coda a cui verranno inviati i messaggi.

Compilazione del codice

  • Scegliere Compila soluzione dal menu Compila di Visual Studio. In alternativa, premere F6 per confermare l'accuratezza delle operazioni eseguite.

Mostra:
© 2015 Microsoft