使用C#MSMQ的队列路径#
问题描述:
我似乎无法弄清楚如何格式化队列路径。我以前从未使用过MSMQ。我设置它,创建一个名为test的私有队列,并且想要尝试发送消息。使用C#MSMQ的队列路径#
我正在使用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);
}
这是我正在使用的代码。我上线的错误,新的MessageQueue,指出后:
类型“System.ArgumentOutOfRangeException”的异常出现在mscorlib.dll,但在用户代码中没有处理
其他信息:长度不能小于零。
我相信这是没有正确路径的结果。我使用的是Windows 10
答
你的本地专用队列格式应为是:
@".\Private$\TextsQueue"
以下是对我的 “StartQueue” 看起来像一个例子:
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);
}
+0
好。我需要添加双斜杠。那是我的错误。 “jsmith528 \\私人$ \\测试” – LearningToCode
尝试这些:\ PRIVATE $ \测试或jsmith528 \ Private $ \ test – Kevin