Pregunta

Mi máquina es Windows 7 ultimate (64 bits).Instalé MSMQ y verifiqué que funciona bien (ejecuté algunos códigos de muestra para MSMQ).

Cuando intento crear un servicio WCF usando la clase MsmqIntegrationBinding, aparece la siguiente excepción:

"Ocurrió un error al abrir la cola: La cola no existe o no tienes permisos suficientes para realizar la operación.(-1072824317, 0xc00e0003).El mensaje no se puede enviar ni recibir desde la cola.Asegúrese de que MSMQ esté instalado y ejecutándose.También asegúrese de que la cola esté disponible para abrirse con el modo de acceso y la autorización requeridos".

Estoy ejecutando Visual Studio en modo Administrador y me concedo permiso explícitamente a mí mismo a través de una URL ACL usando:netsh http agregar urlacl url=http://+:80/ usuario=DOMINIO\usuario

A continuación se muestra el 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();
        }
    }

¿Puedes ayudarme?

¿Fue útil?

Solución

Asegúrese de haber creado la cola "Pedidos" en MSMQ.

En Windows Server 2008, puede hacerlo desde el Administrador del servidor (haga clic con el botón derecho en Mi PC y seleccione Administrar), luego Funciones -> Cola de mensajes -> Colas privadas.Haga clic derecho en Colas privadas y agregue allí su cola de "Pedidos".

Quizás también quieras consultar el artículo de Nicholas Allen: Diagnóstico de errores de cola comunes.Sugiere que su error sólo puede ser: "que la cola no existe, o quizás haya especificado el nombre de la cola incorrectamente".Todos los demás casos de error habrían arrojado una excepción diferente.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top