2017-03-22 10 views
1

J'ai un projet Silverlight qui se connecte à MS CRM. Ce projet appelle un workflow qui effectue certaines étapes, dont une étape personnalisée. Ce processus lève une exception Timeout lorsque le service.Create (Entity) est appelé.Passes de test unitaire, échecs du projet, échec du test unitaire

J'ai un test unitaire qui appelle le flux de travail avec les mêmes données que le projet Silverlight. Si je lance le test unitaire avant d'essayer le projet Silverlight, le test est réussi. Je lance ensuite le projet Silverlight et l'exception de timeout est lancée. Si je lance ensuite le test unitaire après cela, il échoue également.

Aucune erreur réelle n'est lancée. L'étape Workflow se bloque simplement.

Le même code se trouve dans deux environnements. Notre environnement DEV fonctionne comme un rêve. Notre environnement de test est l'endroit où tout le problème commence.

Quelqu'un a-t-il une idée de ce qui pourrait se passer?

EDIT: L'erreur s'est produite avant le code de test de l'unité. Je l'ai réduit à une ExecuteMultipleRequest. Cependant, ce code fonctionne à nouveau dans un contexte différent. Deux workflows, les deux font la même chose. Un asynchrone et l'autre synchronisé. L'async passe et l'async ne fonctionne pas ...

Répondre

1

Par défaut, le nombre d'ExeucteMultipleRequests que vous exécutez est limité à 2, donc la première étape consiste à vous assurer que vous n'en faites pas plus que .

Une autre chose à faire est de s'assurer que vous n'êtes pas multi-threading vos connexions à CRM. Par défaut, .Net ne permet que 2 requêtes http par application. Ceci est contrôlé par un paramètre de configuration. Enfin, j'exécute un WhoAmIRequest dès que vous créez votre connexion à CRM, juste pour m'assurer qu'il est valide (en supposant que vous n'effectuiez aucune autre requête avant celle qui échoue).

+0

Merci Daryl. Nous avons résolu le problème en passant les ExeucteMultipleRequests à des mises à jour simples. –