J'ai un service WF que j'essaye de configurer recevoir des activités à "S'abonner" et "Se désabonner". J'utilise This WF Durable Duplex Tutorial comme base car mon service effectue des rappels aux clients. Fondamentalement, pensez-y comme un service de chat.Pourquoi ma variable Workflow Service (4.0) est-elle nulle dans une activité DoWhile?
Je peux très bien faire des appels clients aux deux activités de réception. Ce qui se passe, c'est que l'adresse de rappel du client est transmise à Subscribe() sur le service. L'adresse est stockée en tant que variable dans le service WF et tout semble fonctionner comme prévu.
Lorsqu'un client appelle Unsubscribe(), ma montre que j'ai définie sur l'adresse var pendant le débogage affiche null
. Alors qu'est-ce qui donne?
est ici la configuration de base de ma mise en service WF ...
Tout est enveloppé dans une activité DoWhile. A l'intérieur de cela est une activité Pick et deux branches Pick. La première branche est pour les activités d'abonnement. Il a une activité receive-sendreply qui affecte la chaîne passée par le client à l'adresse WF var. La deuxième branche gère les désinscriptions. Le déclencheur est l'activité Requête et l'adresse du client est à nouveau transmise.
De là, il passe dans une séquence, en commençant par un If. Il vérifie si le unsubscribeAddress
est égal au address
déjà souscrit. Si c'est le cas, il définit address
à String.Empty
et renvoie un message de réussite au client.
Pourquoi une variable portée à l'activité DoWhile enveloppante est-elle implicitement affectée à null? J'essaye de faire fonctionner ceci afin que je puisse implémenter plusieurs abonnées de client à partir de là et travailler sur des déclencheurs qui appellent des rappels à plusieurs clients.
CONCAT EDIT: Je définis un point d'arrêt au niveau DoWhile et ma var est nulle une fois que Unsubscribe()
est appelée. Lorsque Subscribe()
est invoqué, la montre affiche une valeur dans la variable jusqu'au bout. Jusqu'à ce que je Unsubscribe()
avec un client. Dois-je utiliser une activité While à la place?
Désolé Gnostus, il s'agit d'un service de flux de travail .Net et je ne peux pas créer de classe et définir la variable comme une propriété. Si c'était du code, il serait plus facile d'attaquer et infiniment plus facile à déboguer. – jlafay