开发者

Why does MSMQ think I'm on a workgroup computer?

My computer is connected to a domain, but when I go to create a public开发者_如何学Python queue:

MessageQueue.Create(@".\testqueue");

I get this error:

A workgroup installation computer does not support the operation.

Why might MSMQ think I'm on a workgroup computer?


I know this is late, and there is already an accepted answer, but I just had this issue and it was resolved by changing the format of the queue string.

When my queue name was this, I got the workgroup error:

".\QueueName"

When I changed it to a more formal version, there was no error and sending to the queue worked:

"FormatName:DIRECT=OS:ComputerName\private$\QueueName"

Just in case someone else comes across this post, now they have something else to try...


I got the same problem and solved it by changing it to @".\private$\QueueName"


Being part of a domain is a pre-cursor for installing MSMQ in AD-integrated mode. It doesn't guarantee MSMQ IS installed in AD-integrated mode. MSMQ will install in workgroup mode if:

  1. AD integration was not selected as a setup option
  2. AD integration was selected but failed to initialise; check event logs

Yes, the workgroup name is confusing in a domain member situation.


I was facing the same problem, take a look at solution below. I don't know the reason but creating queue in this manner works perfectly.

private MessageQueue messageQueue;
public const string DEFAULT_QUEUE_NAME = "newQueue";
public const string QUEUENAME_PREFIX = ".\\Private$\\";

public static string QueueName
{
    get
    {
        string result = string.Format("{0}{1}", QUEUENAME_PREFIX, DEFAULT_QUEUE_NAME);
        return result;
    }
}

public void SendMessage()
{
    string queuePath = QueueName;
    MessageQueue  messageQueue = MessageQueue.Create(queuePath);
    messageQueue.Send("msg");            
}

you can create queue for receiving message in the same manner.


Adding for documentation purpose... I was getting error "A workgroup installation computer does not support the operation" while trying to access transactional dead letter queue and it was due to not specifying the machine name. I was using period to denote computer name. e.g. "FORMATNAME:DIRECT=OS:.\SYSTEM$;DEADXACT". It does not work even with using complete format name. Problem solved after replacing the period with computer name. Below is the working code.

using (var queue = new MessageQueue($@"FORMATNAME:DIRECT=OS:{Environment.MachineName}\SYSTEM$;DEADXACT"))
{
    queue.Purge();
}


It is possible that MSMQ installed in your machine as a guest user or another user so remove it from machine and install it with administrative permission.

Why does MSMQ think I'm on a workgroup computer?


On the server I was having trouble running MSMQ and getting different kinds of errors, including the error asked in the question.

A workgroup installation computer does not support the operation

What worked for me was not fiddling with Server Manager, but reinstalling MSMQ using Powershell.

Remove-WindowsFeature Msmq; Add-WindowsFeature MsMq

These two cmdlets can be run in a Powershell console running as Administrator. At least it fixed the error for me, but this will install the entire Msmq feature, including subfeatures.

Why does MSMQ think I'm on a workgroup computer?


i got this error while debugging a web site from visual studio (2015). restarting the iisexpress solved this...

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜