paramètre de délai d'attente pour une exécution longue d'un Service WCF
J'ai un service WCF méthode qui prend plus de deux heures à exécuter (s'exécute certains rapports). comment puis-je m'assurer qu'il n'a pas de délai d'attente quel que soit le temps qu'il faut? Je pense qu'il y a de nombreux paramètres de délai d'expiration dans WCF config, je ne suis pas sûr que l'on est pertinente pour moi. pour ASMX webservices, il y avait une option pour spécifier infini paramètre de délai d'attente, est-il similaire à celui de la WCF?. aussi ai-je besoin de changer les paramètres IIS (WCF servcie est hébergé sur IIS), comme le recyclage des processus de travail, les délais d'attente d'inactivité, etc?
OriginalL'auteur RKP | 2011-01-05
Vous devez vous connecter pour publier un commentaire.
Avez-vous envisagé d'utiliser des rappels? Votre client envoie une requête et attend une notification à partir du serveur pour quand c'est fait? Ce serait probablement exiger un changement dans le client, mais de cette façon, votre service peut "hochet de la chaîne" et de dire au client lorsque le rapport est terminé.
aider: http://idunno.org/archive/2008/05/29/wcf-callbacks-a-beginners-guide.aspx
WCF délais d'expiration:
http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/84551e45-19a2-4d0d-bcc0-516a4041943d/
Vous devriez également considérer les délais d'attente sur le côté client. (reliure.OpenTimeout, ReceiveTimeout, CloseTimeout etc.)
Une autre option serait l'hôte de la WCF dans un Service Windows, ce qui pourrait simplifier votre situation, qu'il supprime IIS à partir de l'équation:
http://msdn.microsoft.com/en-us/library/ms733069.aspx
Ou, qu'à l'aide d'un d'une manière WCF appel? De cette façon, l'appel sera de retour au client le plus tôt possible après l'envoi de la demande.
Besoin échantillon fire and forget appel asynchrone de service WCF
Que penser de l'utilisation une sorte d'appel dans WCF? stackoverflow.com/questions/774648/...
OriginalL'auteur Larsbj
C'est un abus de web services. Ne pas le faire.
Au lieu de cela, avoir le service web le coup d'envoi de l'opération de longue durée, de l'exécution dans un processus séparé. Si les clients ont besoin de savoir quand les rapports sont faits, alors le "processus distinct de" garder une trace de la création de rapports et d'ont il note lorsque les rapports sont finis. Le client peut appeler un service web pour vérifier le statut.
Vous ne voulez vraiment pas être dépendant d'une connexion HTTP et reste ouverte pendant des heures. C'est un réseau. Les choses se produire sur les réseaux. De mauvaises choses.
OriginalL'auteur John Saunders
Envisager la création d'un WCF service de flux de travail (à l'aide de WF) à la place. Ces sont spécifiquement conçus pour gérer les processus long, surtout si vous utilisez de la persistance.
OriginalL'auteur TrueWill