2008-12-31 11 views
10

j'ai un problème similaire comme ici: http://social.msdn.microsoft.com/forums/en-US/biztalkgeneral/thread/87d5a6ec-04ee-4c6f-8267-f526ee105f0bQue se passe-t-il lorsqu'un utilisateur ferme son navigateur en attente d'un appel de service Web de longue durée?

J'ai une page web asp.net qui appelle un service Web BizTalk. L'orchestration BizTalk fait son travail et renvoie une réponse à la page asp.net. Le processus pourrait prendre jusqu'à une minute ou deux. Je reçois beaucoup de délais, mais il semble que l'orchestration BizTalk soit de retour dans les 30 secondes en moyenne. Je me demande ce qui se passe si l'utilisateur soumet sa demande et ferme immédiatement son navigateur. Est-ce que le client asp.net arrête d'attendre la demande de BizTalk (et cause un délai d'expiration) ou attendra-t-il toujours la requête même si l'utilisateur a fermé son navigateur?

+0

Je me demandais moi-même, en fait ... –

+0

Je me demandais aussi. Mon instinct est que le serveur n'aura aucun moyen de savoir, mais peut-être que je me trompe. – Triptych

+0

Je crois que le serveur exécute l'appel et si le client de retour n'est plus disponible, il supprime les données. Donc, il court essentiellement dans un délai d'attente (à partir du serveur lui-même) ou supprime les données lorsque les données sont disponibles. Pas 100% à ce sujet cependant. –

Répondre

6

La requête ASP.NET continue à s'exécuter, ignorant que le navigateur qui a initialement soumis le GET/POST n'attend plus. La requête se termine, à l'exclusion de toute autre erreur, telle que les délais d'attente du serveur.

+0

Je crois que c'est la bonne réponse. – dtc

+0

Le comportement dépend de la configuration du navigateur et du serveur pour keepalive. Si le client déconnecte le socket, le serveur arrêtera la session, abandonnant l'exécution. –