Unable to get permission in setting up queues on deploy for NServiceBus 3.2.7

115 views Asked by At

So using the GO pipeline to deploy an upgrade of the project including the latest version of NServiceBus (3.2.7), I seem have run into some kind of permission issue creating the queues, once manually created, it still seems that the service will not read from it.

Here is my endpoint configuration

public class EndpointConfiguration 
        : IConfigureThisEndpoint, AsA_Server
        , IWantCustomInitialization, IWantCustomLogging 
    {

        public void Init() {
            // setup Container
            var container = new WindsorContainer();
            container.Kernel.ReleasePolicy = new NoTrackingReleasePolicy();
            container.Install(new WindsorInstaller(), new DatabaseInstaller(), new WorkflowTaskingInstaller());

            SetLoggingLibrary.Log4Net(XmlConfigurator.Configure);

            Configure.With()
                .CastleWindsorBuilder(container) 
                .MsmqTransport()
                .UnicastBus()
                .RavenSubscriptionStorage()
                .MyUnitOfWork()
                .XmlSerializer();

            LogManager.GetLogger("cs.Process").Info("Starting cs.Process");
        }

    }

It appears like I said that it is some issue with the service. I'm pretty new to NServiceBus so I'm not certain as to how this is deployed as a service instead of running the host.exe.

Also when I run this locally, I can point at the queues on the dev environment and read from them.

1

There are 1 answers

0
Eben Roux On

These queues can be tricky. The account that is used to create a queue seems to own it and only that account can initially grant any other permissions. So be sure to run your service under some known account for just that purpose.

If you are not running the generic host as a service also be sure that the logged in account under which identity the process will run has access to the queue.

I haven't used NServiceBus for yonks but the last I remember the access denied exception should state the various bits you need access to on the queue.