Gibt es ein Tool, das einfach den Export von Nachrichten aus einer Nachrichtenwarteschlange erlaubt (MSMQ)?

StackOverflow https://stackoverflow.com/questions/830194

  •  06-07-2019
  •  | 
  •  

Frage

Zur Zeit arbeite ich auf Batch-Verarbeitung Anwendung mit MSMQ in C #. Bei der Anwendung Design, habe ich eine Fehlerwarteschlange der ActiveXFormatter mit XML-Nachrichten. Ich weiß, dass ich eine Anwendung schreiben kann diese Fehlermeldungen zu schreiben Dateien oder Datenbanktabellen in Text.

Gibt es andere vorgefertigten Tools zur Verfügung, so dass Sie Nachrichten an verschiedene Formate exportiert werden (das heißt Textdateien, Datenbanktabellen, etc.)? Ich bin nur für die besten Praktiken suchen.

War es hilfreich?

Lösung

Ok. Ich fand die Lösung des Schreibens Code einfach zu sein. Hier ist meine Referenzlösung.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Messaging;

namespace ExportMSMQMessagesToFiles
{
    public partial class frmMain : Form
    {
        public frmMain()
        {
            InitializeComponent();
        }

        private void btnExportTextFiles_Click(object sender, EventArgs e)
        {           
            //Setup MSMQ using path from user...
            MessageQueue q = new MessageQueue(txtMSMQ.Text);

            //Setup formatter... Whatever you want!?
            q.Formatter = new ActiveXMessageFormatter();

            // Loop over all messages and write them to a file... (in this case XML)
            MessageEnumerator msgEnum = q.GetMessageEnumerator2();
            int k = 0;
            while (msgEnum.MoveNext())
            {
                System.Messaging.Message msg = msgEnum.Current;                                
                string fileName = this.txtFileLocation.Text + "\\" + k + ".xml";                
                System.IO.File.WriteAllText(fileName, msg.Body.ToString());
                k++;
            }

            MessageBox.Show("All done!");
        }
    }
}

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top