Frage

Meine Maschine ist Windows 7 Ultimate (64 Bit). Ich MSMQ installiert und überprüft, dass es funktioniert gut (lief einige Beispielcodes für MSMQ).

Wenn ich versuche, einen WCF-Dienst mit MsmqIntegrationBinding Klasse zu erstellen, erhalte ich die folgende Ausnahme:

"Ein Fehler ist aufgetreten, während die Warteschlange zu öffnen:... Die Warteschlange ist nicht vorhanden, oder Sie verfügen nicht über ausreichende Berechtigungen, den Vorgang auszuführen (-1072824317, 0xc00e0003) Die Nachricht kann nicht aus der Warteschlange gesendet oder empfangen werden Stellen Sie sicher, dass MSMQ ist installiert und ausgeführt wird. Achten Sie auch darauf, dass die Warteschlange mit dem erforderlichen Zugriffsmodus und Autorisierung öffnen zur Verfügung steht. "

Ich bin mit der Visual Studio im Administratormodus und gewähren ausdrücklich die Erlaubnis, mich über eine URL ACL mit: netsh http hinzufügen urlacl url = http: // +: 80 / user = DOMAIN \ user

Im Folgenden finden Sie den Code ein:

 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();
        }
    }

Können Sie bitte helfen?

War es hilfreich?

Lösung

Stellen Sie sicher, Sie haben die "Aufträge" Warteschlange in MSMQ erstellt.

In Windows Server 2008, Sie so aus dem Server-Manager tun können (rechts Klick auf Arbeitsplatz und wählen Sie Verwalten), dann Eigenschaften -> Message Queuing -> Private Warteschlangen. Rechtsklick auf Private Warteschlangen und fügen Sie Ihre „Aufträge“ Warteschlange gibt.

Sie können auch Nicholas Alle Artikel überprüfen: diagnostizieren gemeinsame Queue Fehler . Er schlägt vor, dass Ihr Fehler kann nur sein: „dass die Warteschlange nicht vorhanden ist, oder vielleicht haben Sie den Namen der Warteschlange falsch angegeben “. Alle anderen Fehlerfällen eine andere Ausnahme geworfen haben würde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top