7
votes

WCF MSMQ Binding avec un service IIS - Comment instancier le service?

J'ai un service WCF avec NetMSMQBinding. Mon client peut envoyer des messages à ma file d'attente et lorsque le service est exécuté, il récupère les messages de la file d'attente comme prévu. Si le service n'est pas en cours d'exécution, les messages reçus sont mis en file d'attente tant que le service commence.

Mon problème est que le service ne démarre pas lorsqu'un message frappe la file d'attente. Le service est hébergé dans IIS, et il n'est donc pas instancié que l'IIS reçoit une demande. Si je navigue au service, il traite les messages de la file d'attente, mais il n'est évidemment pas ma méthode de traitement de la file d'attente!

Je pense que je dois modifier la mise en œuvre du service ou changer la configuration IIS, mais je ne sais pas où ou quoi changer.

mise à jour

Quelqu'un utilise-t-il réellement MSMQ sur WCF? J'avais cela fonctionnant pendant une courte période - j'ai activé la liaison sur un site Web Différent sur le même serveur, bizarrely - mais maintenant, il a de la manière d'en quelque sorte cessée de travailler à nouveau.

Le seul problème que j'ai eu est avec l'activation du service lorsqu'il y a un message dans la file d'attente. Actuellement, la file d'attente ne traite que lorsque le service est instancié, par exemple. quand je parcourt le fichier .svc. J'ai le protocole Net.MSMQ activé sur l'application et j'ai la liaison Net.MSMQ activée sur le site ... Y a-t-il autre chose que je dois faire?


0 commentaires

3 Réponses :


5
votes

Vous devez explicitement configurer IIS pour une activation non HTTP. Je ne connais pas tous les détails du sommet de ma tête, mais il est essentiellement nécessaire d'utiliser AppMD pour configurer et activer l'activation de la liaison Net.MSMQ.

vérifier ce blogpost ou Ce screencast devrait vous donner tous les détails.


0 commentaires

3
votes

Cela pourrait sauver quelqu'un les heures qu'il m'a fallu: http://msdn.microsoft.com/en-us/library/ms731053. ASPX


0 commentaires

2
votes

Je crois que mes problèmes utilisant MSMQ se liant sur la WCF étaient principalement autour de IIS.

Je n'avais aucune fin des problèmes à l'aide de Windows XP / Server 2003 avec IIS 6.

Utilisation de Windows 7 ou de Server 2008 avec IIS 7.5 Tout fonctionne bien.

Une suggestion encore meilleure est d'exécuter MSMQ comme service géré de service / Windows ou une application autonome plutôt que sous IIS.


0 commentaires