Msmq-und WCF-Dienst
Habe ich einen WCF-Dienst mithilfe der NetMsmq verbindlich, für das ich eine private Warteschlange auf meinem Rechner und der Ausführung des Projekts. Dies funktioniert gut, und mein WCF-Dienst ist gestartet und greift auf die Nachricht mit dem queue in der debugging-Umgebung. Jetzt wollte ich host den Dienst über die windows Dienste und für die gleichen ich ein neues Projekt erstellt und die windows installer-als auch (Dieser Dienst läuft unter dem Lokalen System-Konto). Dann habe ich versucht, die Installation dieser windows-Dienst mit dem Befehl InstallUtil über die Eingabeaufforderung. Bei der installation passiert ist und während der service-host, öffnen, bekomme ich eine exception, die sagen:
There was an error opening the queue. Ensure that MSMQ is installed and running, the queue exists and has proper authorization to be read from. The inner exception may contain additional information.
Inner Exception System.ServiceModel.MsmqException: An error occurred while opening the queue:Access is denied. (-1072824283, 0xc00e0025). The message cannot be sent or received from the queue. Ensure that MSMQ is installed and running. Also ensure that the queue is available to open with the required access mode and authorization.
at System.ServiceModel.Channels.MsmqQueue.OpenQueue()
at System.ServiceModel.Channels.MsmqQueue.GetHandle()
at System.ServiceModel.Channels.MsmqQueue.SupportsAccessMode(String formatName, Int32 accessType, MsmqException& msmqException)
Konnte jeder jeden schlagen, die mögliche Lösung für das oben genannte Problem? Fehlen mir irgendwelche Berechtigungen gesetzt werden, die für die Warteschlange, als auch als windows-Dienst, wenn das so ist könnte man vorschlagen wo sollten diese Berechtigungen Hinzugefügt werden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Tom Hollander hatte eine große drei-teilige blog-Serie, die auf der Verwendung von MSMQ aus WCF - gut lohnt sich!
Vielleicht finden Sie die Lösung für Ihr problem schon irgendwo erwähnt!
Ja, es sieht aus wie ein Berechtigungsproblem.
Rechten Maustaste auf Ihre privaten Warteschlange, die Server-Manager, und wählen Sie Eigenschaften. Gehen Sie auf die Registerkarte Sicherheit, und stellen Sie sicher, dass Sie die richtigen Berechtigungen für Ihr Konto Lokales System.
Dies bestätigt sich auch bei Nicholas Allens Artikel: Diagnose Common-Warteschlange Fehler, wo der Autor bestimmt den Fehlercode 0xC00E0025 als ein Berechtigungen-problem.
Ich lief in das gleiche problem haben, hier die Lösung.
Rechtsklick auf "Arbeitsplatz" --> Verwalten. In der Computer-Management-Fenster gehen Sie auf "Dienste und Anwendungen --> Message-Queueing --> ur queue" auswählen ur queue-und access-Eigenschaften. Fügen Sie die Benutzer ausführen ur WCF-Anwendung und geben Sie vollen Zugriff. Dies sollte das Problem beheben.
Kann einfach sein, dass der Dienst nicht finden können, die es Warteschlange.
Die queue-Namen müssen exakt übereinstimmen, wird die Endpunkt-Adresse.
Beispiel:
Punkte zu lokalen Warteschlange
Wenn queue-name und endpoint sind nach einander, dann ist es am Liebsten, dass die definierten Anmeldeinformationen auf der
IIS pool
nicht gewährt Zugriff auf die queue.