使用 C# 的 MSMQ 的队列路径



我似乎无法弄清楚如何格式化队列路径。我以前从未使用过MSMQ。我设置了它,创建了一个名为 test 的私有队列,并想尝试发送消息。

我正在使用Visual Studio,ASP.NET,webforms,C#。

protected void Page_Load(object sender, EventArgs e)
{
SendPrivateTx();  
}
public void SendPrivateTx()
{
MessageQueue rmQ = new MessageQueue("jsmith528/private$/test");
rmQ.Send("message", MessageQueueTransactionType.Single);
}

这是我正在使用的代码。我在新的消息队列之后的行上收到一个错误,指出:

mscorlib 中发生了类型为"System.ArgumentOutOfRangeException"的异常.dll但未在用户代码中处理

附加信息:长度不能小于零。

我相信这是没有正确路径的结果。我正在使用 Windows 10。

您的本地私有队列应按原样格式化:

@".Private$TextsQueue"

以下是我的"启动队列"的示例:

List<ServiceController> services = ServiceController.GetServices().ToList();
ServiceController msQue = services.Find(o => o.ServiceName == "MSMQ");
if (msQue != null) 
{
if (msQue.Status == ServiceControllerStatus.Running) 
{ 
// It is running.
//Q Creation
if (MessageQueue.Exists(@".Private$TextsQueue"))
{
textsQueue = new System.Messaging.MessageQueue(@".Private$TextsQueue");
}
else
textsQueue = MessageQueue.Create(@".Private$TextsQueue");

textsQueue.Purge();
textsQueue.ReceiveCompleted += new
ReceiveCompletedEventHandler(QueueReceiveCompleted);              
}

最新更新