.NET Web Service (asmx) Problème de Délai d'attente
Je me connecte à un fournisseur de web ASMX service et l'envoi d'un ensemble de données sur le fil. Ma première tentative a frappé les 1 minutes délai d'attente que Visual Studio jette par défaut dans l'application.fichier de configuration lorsque vous ajoutez un service de référence à un projet. J'ai augmenté à 10 minutes, un autre délai. 1 heure, un autre délai d'attente:
Error: System.TimeoutException: The request channel timed out while waiting for
a reply after 00:59:59.6874880. Increase the timeout value passed to the call to
Request or increase the SendTimeout value on the Binding. The time allotted to
this operation may have been a portion of a longer timeout. ---> System.TimeoutE
xception: The HTTP request to 'http://servername/servicename.asmx' has exceeded the allotted timeout of 01:00:00. The time allotted to this
operation may have been a portion of a longer timeout. ---> System.Net.WebExcept
ion: The operation has timed out
at System.Net.HttpWebRequest.GetResponse() [... lengthly stacktrace follows]
J'ai contacté le vendeur. Ils ont confirmé l'appel peut prendre plus d'une heure (ne me demandez pas, ils sont le fléau de mon existence.) J'ai augmenté le délai d'attente de 10 heures à être sur le côté sécuritaire. Toutefois, l'appel de service web continue d'heure à 1 heure. Pertinentes de l'application.section de configuration ressemble maintenant à ceci:
<basicHttpBinding>
<binding name="BindingName" closeTimeout="10:00:00"
openTimeout="10:00:00" receiveTimeout="10:00:00" sendTimeout="10:00:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="2147483647"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None" realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
Assez absurde, mais quel que soit le délai d'attente est encore des coups de pied à 1 heure. Malheureusement, chaque changement prend au moins une heure supplémentaire pour tester. Est-il une limite interne que je suis cogner - un autre paramètre de délai d'attente pour être changé quelque part? Toutes les modifications de ces paramètres jusqu'à une heure a eu l'effet escompté.
Merci pour toute aide que vous pouvez fournir!
Oui, c'est la même erreur.
OriginalL'auteur James Orr | 2010-06-17
Vous devez vous connecter pour publier un commentaire.
Tout d'abord:
Voir Steven Cheng[MSFT] réponse ici sur les délais d'attente. Il y a un délai d'exécution, vous pouvez définir pour httpRuntime. Il dit quelque chose d'intéressant, ce qui est "Aussi, assurez-vous que vous avez défini la" compilation debug="false" " quant à la faire le délai d'attente fonctionner correctement"
Outre le fait que quelque chose ne tourne pas rond sur leur fin (ou les données renvoyées sont tellement volumineux/je ne vais pas juge - peut-être une bonne raison), avez-vous essayé d'appeler leur fonctionnement de manière Asynchrone? Mêmes résultats? Je suppose que ce serait prendre une heure
Le formulaire de gestionnaire d'événement aura un événement spécifique param args, qui contiendra les résultats, pour l'événement args e, e.Résultat devrait avoir ce que vous avez besoin quand il se termine.
Comme pour la async option, je pourrais ouvrir le capot et de modifier l'appel asynchrone. Sont ceux qui sont généralement plus tolérants aux délais d'attente, ils exécutent de façon différente? Les données ne sont pas trop volumineux, mais il doit être traité à l'autre extrémité, avant que les résultats sont retournés, et celui qui a écrit le code de traitement de ne pas avoir un oeil à la performance au-delà d'un certain volume de données.
Salut Barry, Comment avez-vous résolu le problème? J'ai mis les deux httpRuntime délai d'attente d'une grande valeur et aussi de mettre en compilation debug pour de faux. Reçois toujours le même message d'erreur après 1 heure
MichaelS, malheureusement je n'ai pas de conseils pour vous. J'ai lutté avec le problème, certains plus avec l'absence de résultats, mais nous avons été finalement en mesure de honte le vendeur dans le cadre de la fixation de leur service web de sorte qu'il a couru dans une beaucoup plus de temps raisonnable.
+1 pour "la honte le vendeur." Si seulement je pouvais obtenir que la tactique de travailler avec SAP/Crystal Reports.
OriginalL'auteur kd7