Pergunta

Minha máquina é Windows 7 Ultimate (64 bits). Eu instalei o MSMQ e verifiquei se está funcionando bem (execute alguns códigos de amostra para MSMQ).

Quando tento criar um serviço WCF usando o msmqintegrationbinding classe, recebo a exceção abaixo:

"Ocorreu um erro ao abrir a fila: a fila não existe ou você não possui permissões suficientes para executar a operação. (-1072824317, 0xc00e0003). A mensagem não pode ser enviada ou recebida da fila. Verifique se o MSMQ está instalado e em execução. Verifique também que a fila está disponível para abertura com o modo de acesso e autorização necessários. "

Estou executando o Visual Studio no modo Administrador e concedem permissão explicitamente a mim mesma por meio de um URL ACL usando: netsh http adicione urlacl url =http: //+: 80/ Usuário = Domínio Usuário

Abaixo está o código:

 public static void Main()
    {         
        Uri baseAddress = new Uri(@"msmq.formatname:DIRECT=OS:AJITDELL2\private$\Orders");
        using (ServiceHost serviceHost = new ServiceHost(typeof(OrderProcessorService), baseAddress))

        {

            MsmqIntegrationBinding serviceBinding = new MsmqIntegrationBinding();
            serviceBinding.Security.Transport.MsmqAuthenticationMode = MsmqAuthenticationMode.None;
            serviceBinding.Security.Transport.MsmqProtectionLevel = System.Net.Security.ProtectionLevel.None;
            //serviceBinding.SerializationFormat = MsmqMessageSerializationFormat.Binary;
            serviceHost.AddServiceEndpoint(typeof(IOrderProcessor), serviceBinding, baseAddress);
            serviceHost.Open();

            // The service can now be accessed.
            Console.WriteLine("The service is ready.");
            Console.WriteLine("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
            Console.WriteLine("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();
        }
    }

Você pode por favor ajudar?

Foi útil?

Solução

Certifique -se de criar a fila "Ordens" no MSMQ.

No Windows Server 2008, você pode fazê -lo no gerenciador do servidor (clique com o botão direito do mouse no meu computador e selecione Gerenciar) e, em seguida, recursos -> filas de mensagens -> filas privadas. Clique com o botão direito do mouse nas filas particulares e adicione sua fila "pedidos" lá.

Você também pode querer verificar o artigo de Nicholas Allen: Diagnosticando erros de fila comuns. Isso sugere que seu erro só pode ser: "Que a fila não existe, ou talvez você tenha especificado o nome da fila incorretamente". Todos os outros casos de erro teriam lançado uma exceção diferente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top