このページは役に立ちましたか。
このページのコンテンツについての ご意見をお待ちしております
その他にご意見はありますか。
残り 1500 文字
エクスポート (0) 印刷
すべて展開

手順 2:管理資格情報の作成

更新日: 2015年6月

これは Service Bus のメッセージング機能のチュートリアルの 2 番目の手順です。この手順では、アプリケーションの承認に使用する Shared Access Signature (SAS) 資格情報を作成するために使用する、管理操作を定義します。

  1. わかりやすくするために、このチュートリアルでは、すべてのキューの操作を別のメソッドに配置します。Program クラスの Main() メソッドの下に、Queue() メソッドを作成します。例:

    public static void Main(string[] args)
    {
    …}
    static void Queue()
    {
    }
    
    
  2. 次の手順は、TokenProvider オブジェクトを使用して、SAS 資格情報を作成することです。この作成方法は、CollectUserInput() メソッドで取得した発行者名と SAS キーを取得します。次のコードを Queue() メソッドに追加します。

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

  1. 新しいサービスの名前空間の管理オブジェクトを、前の手順で引数として取得したサービスの名前空間名と管理資格情報を含む URI で作成します。前の手順で追加したコードのすぐ下に、このコードを貼り付けます。

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

使用例

この時点で、コードは、次のようになります。

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























































































次の手順では、メッセージを送信するキューを作成します。

コードのコンパイル方法

  • Visual Studio の [ビルド] メニューで、[ソリューションのビルド] を選択するか、F6 キーを押してこれまでの作業の正確性を確認します。

表示:
© 2015 Microsoft