System.Net.WebException: La demande a été abandonnée: la demande a été annulée
J'ai un service WCF qui m'a donne cette erreur sous des conditions de charge (et je n'arrive pas à recréer l'erreur contraire). Nous avons essayé de trouver un moyen de l'éviter pendant environ une semaine maintenant, et ce sans aucune chance..
L'erreur que je vois est composé de deux parties,
Système.ServiceModel.CommunicationException:
Une erreur: (La demande a été abandonnée:
la demande a été annulée.) s'est produite
lors de la transmission de données via http
canal.
et:
Système.Net.WebException: La demande
a été abandonnée: la demande a été
annulé.
J'ai vu beaucoup de gens suggèrent de désactiver travailler avec les garder en vie par la surcharge d'une méthode dans l' Reference.cs
fichier et réglage KeepAlive = false
cependant, de notre côté client est à l'aide d'un service de référence (en plus de la référence web) et que cette option n'existe plus.
Une autre option que j'ai vu, c'était pour ajouter une Liaison personnalisée pour le service à la place de la BasicHttpBinding
nous utilisons maintenant, mais qui se donne la peine d'en arrière l'appui de la webservice pour ceux qui ont été à l'aide d'un webReference (depuis CustomBinding
n'est pas de SAVON activé).
Quelqu'un a abordé cette erreur avant? Est-il un moyen de désactiver le garder vivant dans WCF, sans affecter le serveur? Est-il autre chose que le garder vivant, qui est connu pour provoquer cette erreur?
source d'informationauteur Audzzy
Vous devez vous connecter pour publier un commentaire.
Je ne pense pas que HTTP garder vivante est responsable de cela. WCF doit être capable de gérer cela, en soi, de sorte que le HTTP persistant connexion est partagée entre les demandes et s'il arrive à expiration (elle expire au bout de 100s d'inactivité) WCF crée un nouveau sans tirer aucune exception. Si votre connexion est interrompue lors de la demande de transmission puis-je m'attendre il y aura un autre problème.
Vous pouvez utiliser cette liaison personnalisée comme équivalent à BasicHttpBinding sans HTTP keep alive:
J'ai eu ce problème lorsque j'essaie de télécharger de gros fichiers. J'ai dû ajouter à cela le web.config de la web services
J'ai eu exactement ce même problème.
Dans mon cas, j'ai été l'exécution de demandes de façon Asynchrone. J'ai été l'envoi de quelques centaines de demandes pour le "serveur" de mon client. Je suis/a l'aide de basicHttpBinding. Et dans mon application.paramètre de configuration de la openTimeout propriété a été définie à 60 secondes ou une minute. Une fois que j'ai mis que pour un plus grand nombre de 10 minutes, le problème a disparu.
Ainsi, par exemple, j'ai changé l'ensemble de ces valeurs dans mon application.fichier de configuration:
à 10 minutes.