Existe-t-il un outil permettant d’exporter facilement des messages à partir d’une file de messages (MSMQ)?
Question
Je travaille actuellement sur une application de traitement par lots utilisant MSMQ en C #. Dans la conception de l'application, j'ai une file d'erreurs contenant des messages XML à l'aide de ActiveXFormatter
. Je sais que je peux écrire une application pour écrire ces messages d'erreur dans des fichiers texte ou des tables de base de données.
Existe-t-il d'autres outils préconfigurés permettant d'exporter des messages vers différents formats (fichiers texte, tables de base de données, etc.)? Je recherche simplement les meilleures pratiques.
La solution
Ok. J'ai trouvé la solution d'écrire du code très simple. Voici ma solution de référence.
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!"); } } }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow