¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
Exportar (0) Imprimir
Expandir todo

Paso 2: Crear credenciales de administración

Actualizado: junio de 2015

Este es el segundo paso en el tutorial de características de mensajería de CmdLets. En este paso, definirá las operaciones de administración que se van a utilizar para crear credenciales de firma de acceso compartido (SAS) con que se autorizará la aplicación.

  1. Para mayor claridad, este tutorial coloca todas las operaciones de cola en un método independiente. Cree un método Queue() en la clase Program, debajo del método Main(). Por ejemplo:

    public static void Main(string[] args)
    {
    …}
    static void Queue()
    {
    }
    
    
  2. El siguiente paso consiste en crear una credencial de firma de acceso compartido mediante un objeto TokenProvider. El método de creación toma el nombre del emisor y la clave SAS que obtuvo en el método CollectUserInput(). Agregue el código siguiente al método Queue():

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

  1. Cree un nuevo objeto de administración de espacio de nombres de servicio, con un URI que contiene el nombre de espacio de nombres de servicio y las credenciales de administración obtenidas en el último paso, como argumentos. Agregue este código directamente debajo del código agregado en el paso anterior:

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

Ejemplo

En este punto, el código debe ser similar al siguiente:

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();
    }
  }
}























































































En el paso siguiente, creará la cola a la que enviará mensajes.

Compilar el código

  • En el menú Generar en Visual Studio, seleccione Generar solución o presione F6 para confirmar la precisión de su trabajo hasta el momento.

Mostrar:
© 2015 Microsoft