Exemplarische Vorgehensweise: Erstellen einer Warteschlange und Arbeiten mit Meldungen

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Die Prozeduren in diesem Thema zeigen den Prozess des Erstellens einer Nachrichtenwarteschlange mithilfe der MessageQueue-Komponente. Mithilfe der Komponente Sie Nachrichten an die Warteschlange senden und Abrufen von Nachrichten aus. Die Meldungen protokollieren Hilfeanforderungen.

Hinweis

Um Warteschlangeninformationen im Server-Explorer anzeigen oder programmgesteuert auf Warteschlangen zugreifen, müssen Sie die Message Queuing Windows-Komponente auf dem Clientcomputer installieren.Verwenden Sie Software Systemsteuerung ein, um hinzuzufügen dieses Dienstes.

Hinweis

Ihr Computer möglicherweise unterschiedliche Namen oder Pfade für einige der Visual Studio-Benutzer Elemente der Benutzeroberfläche in den folgenden Anweisungen angezeigt. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Arbeiten mit Einstellungen.

So erstellen Sie eine Meldungswarteschlange auf dem computer

  1. Im Menü Datei neueauf, und klicken Sie dann auf Project.

  2. In the New Project dialog box, create a Visual Basic or Visual C# Windows Application. Nennen Sie MessageQ.

  3. Server-Explorer öffnen. Weitere Informationen finden Sie unter SO WIRD'S GEMACHT: Zugriff und Initialize Server Explorer/Database Explorer.

  4. Erweitern Sie den Knoten Server.

  5. Erweitern Sie den Knoten für den lokalen Server. Der Knoten für den lokalen Server wird durch die Computername identifiziert.

  6. Erweitern Sie Knoten Meldungswarteschlangen.

  7. Klicken Sie mit der rechten Maustaste auf Private Warteschlangen , und klicken Sie dann auf Warteschlange erstellen.

  8. Geben Sie HelpRequest für den Warteschlangennamen. Wählen Sie Transaktionen als nicht.

  9. Eine neue private Warteschlange mit dem Namen HelpRequest wird erstellt und im Server-Explorer angezeigt.

    Hinweis

    Sie können auch die neu erstellte Warteschlange über die Arbeitsplatz anzeigen.Klicken Sie mit der rechten Maustaste auf das Symbol Arbeitsplatz auf Ihrem Desktop, und klicken Sie dann auf verwalten.Erweitern Sie den Knoten Dienste und Anwendungen.Erweitern Sie den Nachrichtenwarteschlange Knoten, und wählen Sie das Ordner Private Warteschlangen.Die neue Warteschlange wird in der Warteschlange angezeigt.

Um eine MessageQueue-Komponente für die Meldungswarteschlange hinzuzufügen

  1. Ziehen Sie die HelpRequest -Warteschlange von Server-Explorer auf Ihrem Formular. Das Projekt, für die Warteschlange MessageQueueHelpRequest konfiguriert wird eine neue Komponente hinzugefügt.

    MessageQueue -Komponente wird zum programmgesteuerten Zugriff auf die in der HelpRequest Warteschlange enthaltenen Nachrichten im vorherigen Abschnitt erstellt.

  2. Legen Sie die (Name) -Eigenschaft der Komponente MessageQueueHelpRequestQueue.

  3. Erweitern Sie im Eigenschaftenfenster MessageReadPropertyFilter Knoten. Festlegen der Priorität Wert zu true. Dadurch wird die Priorität der Nachricht abgerufen werden, wenn eine Nachricht aus der Warteschlange abgerufen wird.

    Die Benutzeroberfläche, die Sie in der nächsten Prozedur erstellen ermöglicht dem Benutzer zum Eingeben von Text für eine Hilfeanforderung und Festlegen der Priorität der Nachricht. Der Benutzer auf eine Schaltfläche senden, um die Anforderung an die Warteschlange senden klickt. Ein Steuerelement DataGridView zeigt den Inhalt der Warteschlange. Die Benutzeroberfläche enthält außerdem Schaltflächen, um das Raster mit den aktuellen Inhalt der Warteschlange aktualisieren und Löschen der Warteschlange.

Zum Erstellen der Benutzeroberfläche

  1. Fügen Sie folgende Steuerelemente von Registerkarte Windows FormsToolboxzu Form1:

  2. Legen Sie die folgenden Eigenschaften der Steuerelemente fest:

    Steuerelement

    -Eigenschaft

    Neuer Wert

    Label1

    Text

    Name

    Label2

    Text

    Meldung

    TextBox1

    Name

    txtName

     

    Text

    (leer)

    TextBox2

    Name

    txtMessage

     

    Text

    (leer)

     

    Multiline

    true

    Button1

    Name

    sendMessage

     

    Text

    Nachricht senden

    Button2

    Name

    refreshMessages

     

    Text

    Nachrichtenliste aktualisieren

    Button3

    Name

    purgeMessages

     

    Text

    Löschen von e-Mail-Liste

    CheckBox1

    Name

    highPriority

     

    Text

    Hohe Priorität

    DataGridView1

    Name

    messageGrid

  3. Ordnen Sie die Steuerelemente auf übersichtliche Weise.

Um eine Nachricht an die Warteschlange senden

  1. Doppelklicken Sie im Designer auf die Schaltfläche sendMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .

  2. Fügen Sie Code hinzu der Methode erstellen Sie eine neue Instanz Message und an die Warteschlange senden und die Meldungsanzeige zu aktualisieren. DisplayMessages-Methode wird in die nächste Schritt geschrieben werden.

                                Private
                                Sub sendMessage_Click(ByVal sender As System.Object,
       ByVal e As System.EventArgs) Handles sendMessage.Click
       Dim theMessage As System.Messaging.Message =
          New System.Messaging.Message(Me.txtMessage.Text)
       theMessage.Label = Me.txtName.Text
       If highPriority.Checked Then
          theMessage.Priority = Messaging.MessagePriority.Highest
       Else
          theMessage.Priority = Messaging.MessagePriority.Normal
       EndIf
       helpRequestQueue.Send(theMessage)
       DisplayMessages()
    EndSub
    
    private void sendMessage_Click(object sender, System.EventArgs e)
    {
       System.Messaging.Message theMessage = 
          new System.Messaging.Message(txtMessage.Text);
       theMessage.Label = txtName.Text; 
       if (highPriority.Checked)
          theMessage.Priority = System.Messaging.MessagePriority.Highest;
       else
          theMessage.Priority = System.Messaging.MessagePriority.Normal;
       helpRequestQueue.Send(theMessage);
       DisplayMessages();
    }
    
  3. Fügen Sie dem Projekt einen Verweis zu System.Data hinzu. Fügen Sie ein Imports-Anweisung (.NET Namespace und Typ) (Visual Basic) oder verwenden (C#-Referenz)System.Data-Anweisung. Weitere Informationen finden Sie unter Verwalten von verweisenund SO WIRD'S GEMACHT: Add or Remove References in Visual Studio.

  4. Fügen Sie eine Methode um den Inhalt der Warteschlange im DataGridView Steuerelement anzuzeigen. Diese Methode verwendet MessageQueue.GetAllMessages-Methode, um alle Nachrichten aus der Warteschlange abzurufen. Die ausgewählten Warteschlangeneigenschaften werden auf ein Objekt DataTable hinzugefügt, als Datenquelle für das Steuerelement DataGridView verwendet wird. Um den Text der Nachricht abzurufen, müssen Sie ein Formatierungsprogramm für die Nachricht zu erstellen.

                                Private
                                Sub DisplayMessages()
       ' Create a DataTableDim messageTable AsNew DataTable()
       messageTable.Columns.Add("Name")
       messageTable.Columns.Add("Message")
       messageTable.Columns.Add("Priority")
       Dim messages() As System.Messaging.Message
       messages = helpRequestQueue.GetAllMessages()
       ' Need a formatter to get the text of the message body.Dim stringFormatter As System.Messaging.XmlMessageFormatter =
          New System.Messaging.XmlMessageFormatter({"System.String"})
       Dim index AsIntegerDim am As System.Messaging.Message
       ' Add each message to the DataTableFor index = 0 To messages.Length - 1
          messages(index).Formatter = stringFormatter
          am = messages(index)
          messageTable.Rows.Add({am.Label, 
                                 am.Body.ToString(), 
                                 am.Priority.ToString()})
       Next
    
       messageGrid.DataSource = messageTable
    EndSub
    
    private void DisplayMessages()
    {
       DataTable messageTable = new DataTable();
       messageTable.Columns.Add("Name");
       messageTable.Columns.Add("Message");
       messageTable.Columns.Add("Priority");
       System.Messaging.Message[] messages;
       messages = helpRequestQueue.GetAllMessages();
       System.Messaging.XmlMessageFormatter stringFormatter;
       stringFormatter = new System.Messaging.XmlMessageFormatter(
          new string[] {"System.String"});
       for (int index = 0; index < messages.Length; index++) 
       {
          messages[index].Formatter = stringFormatter;
          messageTable.Rows.Add(new string[] {
             messages[index].Label,
             messages[index].Body.ToString(),
             messages[index].Priority.ToString() });
       }
       messageGrid.DataSource = messageTable;
    

    }

Um den Inhalt der Warteschlange anzuzeigen

  1. Doppelklicken Sie im Designer auf die Schaltfläche refreshMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .

  2. Rufen Sie innerhalb des Ereignishandlers Click die DisplayMessages-Methode.

                                Private
                                Sub refreshMessages_Click(ByVal sender As System.Object,
       ByVal e As System.EventArgs) Handles refreshMessages.Click
       DisplayMessages()
    EndSub
    
    private void refreshMessages_Click(object sender, System.EventArgs e)
    {
       DisplayMessages();
    

    }

Um den Inhalt der Warteschlange löschen

  1. Doppelklicken Sie im Designer auf die Schaltfläche purgeMessage So erstellen Sie den Click -Ereignishandler in der Code-Editor .

  2. Rufen Sie die Methode PurgehelpRequestQueue, und dann aktualisieren Sie den Inhalt des Steuerelements DataGridView.

                                Private
                                Sub purgeMessages_Click(ByVal sender As System.Object,
    ByVal e As System.EventArgs) Handles purgeMessages.Click
       helpRequestQueue.Purge()
       DisplayMessages()
    EndSub
    
    private void purgeMessages_Click(object sender, System.EventArgs e)
    {
       helpRequestQueue.Purge();
       DisplayMessages();
    

    }

Zum Testen der Anwendung

  1. Drücken Sie [F5], um die Anwendung auszuführen.

  2. Geben Sie Ihren Namen und eine kurze Nachricht.

  3. Klicken Sie auf senden Nachricht in die Nachricht an die Warteschlange senden und die Anzeige zu aktualisieren.

  4. Klicken Sie auf entfernen Nachrichten um alle Nachrichten in der Warteschlange zu löschen. Die Liste von Nachrichten ist nun leer.

Siehe auch

Aufgaben

SO WIRD'S GEMACHT: Erstellen von Warteschlangen

SO WIRD'S GEMACHT: Erstellen von Instanzen von MessageQueue-Komponenten

SO WIRD'S GEMACHT: Senden einfacher Meldungen

SO WIRD'S GEMACHT: Abrufen von Nachrichten

Konzepte

Einführung in Messaging

Weitere Ressourcen

Verwenden von Messaging-Komponenten