2010-10-15 4 views
1

Je travaille avec les services Web ASP.Net et je rencontre un problème avec un processus de longue durée qui prend environ 5 minutes à compléter et qui expire. Pour résoudre ce problème, j'ai été en mesure de définir le délai d'exécution sur web.config du serveur à 10 minutes, puis définissez la propriété .Timeout sur l'objet Service Web à environ 9 minutes. Maintenant, je m'inquiète que cela puisse causer d'autres appels de service Web pour rester là pendant 10 minutes avant qu'ils expirent au lieu des 90-100 secondes précédentes. Je sais que la valeur par défaut du côté client est de 100 secondes, mais je ne savais pas si la mise à jour du paramètre de délai d'attente du serveur affecterait cela.Le paramètre de délai d'expiration du serveur ASP.Net affecte-t-il le paramètre de délai d'expiration du client?

La ligne de fond est - Est-il sûr de mettre à jour le paramètre de délai d'attente du serveur à 10 minutes, et compte sur le délai d'expiration par défaut sur le client, ou cela peut-il causer des problèmes?

Merci!

+0

Le délai d'attente par défaut du client est laissé à la discrétion du client et est loin de 10 minutes dans la plupart des cas. Repensez votre stratégie. :) "Je sais que le côté client est de 100 secondes" - la citation nécessaire. – bzlm

+0

@Ken Merci, mais ce n'est vraiment pas du tout ce que je cherche. –

+0

@bzlm Vous ne savez pas de quoi vous parlez. Le délai d'expiration par défaut de l'objet proxy Service Web est de 100 secondes. http://msdn.microsoft.com/en-us/library/ff647786.aspx#scalenetchapt10_topic14 –

Répondre

2

Le Web n'est pas censé fonctionner comme ceci. Si vous avez un long processus en cours, vous devriez l'appeler dans un nouveau thread et poster la réponse après le chargement de la page côté client (soit avec un callback soit en interrogeant le serveur toutes les x minutes pour vérifier si le processus avoir fini). De cette façon, vous évitez les délais et l'utilisateur obtient sa page (même incomplète) dans un temps convivial. Ceci est important car si l'utilisateur n'obtient pas sa page dans un délai raisonnable, il sera mécontent et tentera de recharger la page (et peut-être redémarrer votre processus ...).

+0

Il ne s'agit pas d'une page Web, mais d'une application Windows Form qui appelle un service Web. –

+0

Ok, je n'ai pas vu ça. Quoi qu'il en soit, je ne pense pas que vous devriez attendre dix minutes pour une réponse. Supposons que vous ayez une courte panne de réseau, vous perdriez votre résultat et seriez obligé de recommencer le processus. Vous devez absolument appeler le service Web pour démarrer le processus, conserver le résultat quelque part dans votre service Web et l'appeler à nouveau pour demander un résultat. –

+0

Merci G, je suis d'accord ... cette solution fonctionnerait toujours bien pour cet environnement. J'espérais juste trouver une réponse rapide pour résoudre ce problème jusqu'à ce que nous puissions mettre en place un nouveau modèle. –

Questions connexes