C# 使用C的MSMQ队列路径
我似乎不知道如何格式化队列路径。我以前从未使用过MSMQ。我设置了它,创建了一个名为test的私有队列,并希望尝试发送消息 我正在使用Visual Studio、ASP.NET、webforms和CC# 使用C的MSMQ队列路径,c#,asp.net,msmq,C#,Asp.net,Msmq,我似乎不知道如何格式化队列路径。我以前从未使用过MSMQ。我设置了它,创建了一个名为test的私有队列,并希望尝试发送消息 我正在使用Visual Studio、ASP.NET、webforms和C protected void Page_Load(object sender, EventArgs e) { SendPrivateTx(); } public void SendPrivateTx() { MessageQu
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之后的行中得到一个错误,该错误表示:
mscorlib.dll中发生“System.ArgumentOutOfRangeException”类型的异常,但未在用户代码中处理
其他信息:长度不能小于零
我相信这是因为没有正确的路径。我正在使用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);
}
试试这些:。\Private$\test或jsmith528\Private$\testGood。我需要添加双斜线。那是我的错误。jsmith528\\private$\\test