2010-09-01 5 views
0

J'ai un service de workflow Windows 4.0 qui appelle un flux de travail situé dans un autre projet (c'est-à-dire un autre assemblage).Service de flux de travail n'appelant pas de flux de travail dans un autre projet

J'ai créé une référence de projet dans mon projet de service de workflow vers le flux de travail dans l'autre assembly.

J'ai défini un point d'arrêt dans l'activité de réception du service de workflow et ce point d'arrêt est atteint. Ensuite, je passe à l'activité suivante qui est une activité située dans un autre projet et le débogueur ne fonctionne pas.

L'autre flux de travail envoie également un courrier électronique. Il semble que l'autre flux de travail ne soit pas appelé car je ne reçois jamais d'e-mail du flux de travail dans l'autre projet.

Toute aide est grandement appréciée.

Ce problème est très facile à reproduire dans Visual Studio 2010.

1.) Créer un nouveau projet d'application Workflow Service WCF et enregistrez la solution.

2.) Ajoutez une nouvelle bibliothèque d'activités à la solution.

3. Dans la bibliothèque d'activités, accédez à la boîte à outils et ajoutez une activité de séquence. Ajoutez une activité de code qui écrit dans le journal des événements. Compilez la bibliothèque d'activités et à partir de la boîte à outils ajoutez l'activité de code le écrit dans le journal des événements Windows à l'activité de la séquence.

4.) Dans le projet de service de workflow, ajoutez une référence de projet au projet de bibliothèque d'activité.

5.) Dans le projet de service de flux de travail, après l'activité ReceiveRequest et l'activité de workflow Bibliothèque d'activités. 6.) définir un point d'arrêt dans l'activité ReceiveRequest du projet workflowservice et un autre point d'arrêt dans la ligne d'activité du code de la bibliothèque d'activité qui écrit dans le journal des événements. 7.) Exécutez le débogueur et vous verrez que le point d'arrêt de la bibliothèque d'activité n'est jamais atteint et si vous exécutez sans le débogueur, la bibliothèque d'activité n'est jamais exécutée (vous pouvez vérifier le journal des événements de Windows pour confirmer que l'activité bibliothèque jamais exécutée).

Veuillez nous éclairer sur une résolution.

Répondre

0

J'ai trouvé la solution au problème! Le problème est que vous ne pouvez pas simplement supprimer l'activité SendResponse (pour le rendre «unidirectionnel» Fire and Forget) et ajouter l'activité ActivityLibrary située dans un autre projet après l'activité ReceiveRequest. Vous devez supprimer l'activité ReceiveRequest et également supprimer l'activité SendResponse et remplacer l'activité ReceiveRequest par l'activité Receive pour la rendre "One-Way".

Voici ce que je l'ai fait pour résoudre le problème:

1.) J'ai supprimé les activités ReceiveRequest et SendResponse.

2.) J'ai ajouté une activité de réception et défini la propriété CanCreateInstance sur True.

3.J'ai ajouté l'activité de la ActivityLibrary située dans un autre projet après l'activité de réception.

Bonne affaire! Cela fonctionne maintenant.

Leo Cono - http://www.PeopleFriends.com

Questions connexes