Schritt 2: Schreiben Ihres ersten Programms

Schreiben Ihres ersten Programms

  1. Doppelklicken Sie im Projektmappen-Explorer auf die Datei Program.cs, um sie im Visual Studio-Editor zu öffnen. Fügen Sie am Anfang der Datei die folgenden using-Anweisungen hinzu, um die Namespaces für das soeben erstellte Modell sowie für Service Bus bereitzustellen:

    using System;
    using Microsoft.ServiceBus;
    using Microsoft.ServiceBus.Messaging;
    
    
  2. Identifizieren Sie Ihren Server, die Ports und den Dienstnamespacenamen. Sie können zu diesem Zweck die Werte hartcodieren, Benutzer zur Eingabe auffordern oder die Werte aus der Konfigurationsdatei lesen. Mit dem folgenden Code werden die Werte hartcodiert:

    static string ServerFQDN;
    static int HttpPort = 9355;
    static int TcpPort = 9354;
    static string ServiceNamespace = "ServiceBusDefaultNamespace";
    
  3. Erstellen Sie die Service Bus-Verbindungszeichenfolge:

    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. Erstellen Sie eine NamespaceManager-Instanz (für Verwaltungsvorgänge) und eine MessagingFactory-Instanz (zum Senden und Empfangen von Nachrichten):

    MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString(connBuilder.ToString());
    NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connBuilder.ToString());
    
  5. Erstellen Sie mit dem neu erstellten URI und Token eine neue Warteschlange:

    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. Erstellen Sie einen Warteschlangenclient zum Senden von Nachrichten an die und zum Empfangen von Nachrichten aus der Warteschlange:

    QueueClient myQueueClient = messageFactory.CreateQueueClient(QueueName);
    
  7. Erstellen Sie eine einfache Brokernachricht, und senden Sie diese an die Warteschlange:

    BrokeredMessage sendMessage = new BrokeredMessage("Hello World !");
    myQueueClient.Send(sendMessage);
    
  8. Empfangen Sie die Nachricht aus der Warteschlange:

    BrokeredMessage receivedMessage = myQueueClient.Receive(TimeSpan.FromSeconds(5));
    
    if (receivedMessage != null)
    {
        Console.WriteLine(string.Format("Message received: Body = {0}", receivedMessage.GetBody<string>()));
        receivedMessage.Complete();
    }
    
  9. Schließen Sie die Verbindung mit Service Bus.

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

Das folgende Beispiel zeigt die vollständige Datei Program.cs, nachdem Sie die oben beschriebenen Schritte ausgeführt haben:

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


Builddatum:

2013-07-25

Community-Beiträge

HINZUFÜGEN
Anzeigen: