エクスポート (0) 印刷
すべて展開

手順 2: 初めてのプログラムの作成

初めてのプログラムの作成

  1. ソリューション エクスプローラーで、Program.cs をダブルクリックして Visual Studio エディターで開きます。次の using ステートメントをファイルの先頭に追加して、作成したモデルおよび Service Bus の名前空間を含めます。

    using System;
    using Microsoft.ServiceBus;
    using Microsoft.ServiceBus.Messaging;
    
    
  2. サーバー、ポート、およびサービスの名前空間名を特定します。この処理は、値をハード コーディングするか、ユーザーに入力を求めるか、または構成ファイルから読み取ることによって実行できます。次のコードは、値をハード コーディングします。

    static string ServerFQDN;
    static int HttpPort = 9355;
    static int TcpPort = 9354;
    static string ServiceNamespace = "ServiceBusDefaultNamespace";
    
  3. Service Bus 接続文字列を作成します。

    ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder();
    connBuilder.ManagementPort = HttpPort;
    connBuilder.RuntimePort = TcpPort;
    connBuilder.Endpoints.Add(new UriBuilder() { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri);
    connBuilder.StsEndpoints.Add(new UriBuilder() { Scheme = "https", Host = ServerFQDN, Port = HttpPort, Path = ServiceNamespace }.Uri);
    
  4. NamespaceManager インスタンス (管理操作用) および MessagingFactory インスタンス (メッセージの送受信用) を作成します。

    MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString(connBuilder.ToString());
    NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connBuilder.ToString());
    
  5. 新しく作成された URI およびトークンを使用して、新しいキューを作成します。

    const string QueueName = "ServiceBusQueueSample";
    
    if (namespaceManager == null)
    {
        Console.WriteLine("\nUnexpected Error: NamespaceManager is NULL");
        return;
    }
    
    if (namespaceManager.QueueExists(QueueName))
    {
        namespaceManager.DeleteQueue(QueueName);
    }
    namespaceManager.CreateQueue(QueueName);
    
  6. キューとの間でメッセージを送受信するキュー クライアントを作成します。

    QueueClient myQueueClient = messageFactory.CreateQueueClient(QueueName);
    
  7. 単純なブローカー メッセージを作成し、キューに送信します。

    BrokeredMessage sendMessage = new BrokeredMessage("Hello World !");
    myQueueClient.Send(sendMessage);
    
  8. キューからメッセージを受信します。

    BrokeredMessage receivedMessage = myQueueClient.Receive(TimeSpan.FromSeconds(5));
    
    if (receivedMessage != null)
    {
        Console.WriteLine(string.Format("Message received: Body = {0}", receivedMessage.GetBody<string>()));
        receivedMessage.Complete();
    }
    
  9. Service Bus への接続を閉じます。

    if (messageFactory != null)                    
    {
        messageFactory.Close();
    }
    

前の手順の後の完全な Program.cs ファイルは、次のようになります。

namespace Microsoft.Samples.QueuesOnPrem
{
    using System;
    using Microsoft.ServiceBus;
    using Microsoft.ServiceBus.Messaging;

    public class Sender
    {
        static string ServerFQDN;
        static int HttpPort = 9355;
        static int TcpPort = 9354;
        static string ServiceNamespace = "ServiceBusDefaultNamespace";


        static void Main(string[] args)
        {
            ServerFQDN = System.Net.Dns.GetHostEntry(string.Empty).HostName;

            ServiceBusConnectionStringBuilder connBuilder = new ServiceBusConnectionStringBuilder();
            connBuilder.ManagementPort = HttpPort;
            connBuilder.RuntimePort = TcpPort;
            connBuilder.Endpoints.Add(new UriBuilder() { Scheme = "sb", Host = ServerFQDN, Path = ServiceNamespace }.Uri);
            connBuilder.StsEndpoints.Add(new UriBuilder() { Scheme = "https", Host = ServerFQDN, Port = HttpPort, Path = ServiceNamespace }.Uri);

            MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString(connBuilder.ToString());
            NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connBuilder.ToString());

            if (namespaceManager == null)
            {
                Console.WriteLine("\nUnexpected Error");
                return;
            }

            string QueueName = "ServiceBusQueueSample";
            if (namespaceManager.QueueExists(QueueName))
            {
                namespaceManager.DeleteQueue(QueueName);
            }
            namespaceManager.CreateQueue(QueueName);

            QueueClient myQueueClient = messageFactory.CreateQueueClient(QueueName);

            try
            {
                BrokeredMessage sendMessage = new BrokeredMessage("Hello World !");
                myQueueClient.Send(sendMessage);

                // Receive the message from the queue
                BrokeredMessage receivedMessage = myQueueClient.Receive(TimeSpan.FromSeconds(5));

                if (receivedMessage != null)
                {
                    Console.WriteLine(string.Format("Message received: {0}", receivedMessage.GetBody<string>()));
                    receivedMessage.Complete();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Unexpected exception {0}", e.ToString());
                throw;
            }
            finally
            {                
                if (messageFactory != null)
                    messageFactory.Close();
            }
            Console.WriteLine("Press  ENTER to clean up and exit.");
            Console.ReadLine();
        }
    }
}


ビルド日:

2013-07-25

コミュニティの追加

追加
表示:
© 2014 Microsoft