2011-09-21 4 views
3

Je reçois l'exception suivante lors de l'appel d'une opération de service Web dans mon application .NET:.NET WebService Timeout Exception

System.Net.WebException: L'opération a expiré à System.Web.Services .Protocols.WebClientProtocol.GetWebResponse (WebRequest demande) à System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse (WebRequest demande) à System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke (String nomMéthode, Object [] paramètres) à org.wvi.hrmgmt.HRManagementServiceserviceage nt.LoadReducedTemplate (LoadReducedTemplateRequest LoadReducedTemplateRequest) à org.wvi.mgmt.hr._ServiceClient.UploadReducedTemplate()

Fondamentalement, un utilisateur télécharge un fichier dans le serveur Web et le contenu binaire de ce fichier est transmis comme l'un des paramètres d'entrée lors de l'appel d'une opération de service Web. La taille du fichier est de 1 397 Ko et si je choisis de traiter ce fichier, je reçois l'exception. Considérant, le traitement d'un fichier avec une taille relativement plus petite, supposée 127 KB, donne une réponse réussie.

Je l'ai fait les étapes ci-dessous afin de résoudre le Dillema:

  1. Réglage du délai d'attente du service Web à l'infini. -> Ne pas obtenir une exception et une réponse

  2. Ajout Response.Close() -> Ne pas obtenir de réponse

  3. Modification du web.config dans le serveur IIS et en ajoutant les lignes suivantes: -> Toujours obtenir l'exception

    <system.web> 
        <customErrors mode="Off"/> 
    <httpRuntime executionTimeout="600" maxRequestLength="16384"/> 
    <sessionState timeout="540"/> 
    </system.web> 
    

Cependant, en vain, je reçois toujours l'exception ci-dessus. J'utilise un plugin Javascript appelé AjaxUpload de GitHub et je ne peux pas savoir s'ils ont une limite de taille de téléchargement de fichier. En outre, j'ai vérifié le fichier s'il est téléchargé sur le serveur et, par conséquent, le problème peut ne pas être à cause de ce plugin.

Un autre problème est que je reçois la même exception lors du téléchargement du fichier après une période de temps l'ouverture de la page Web. Je suppose que cela a quelque chose à voir avec le délai d'attente de la session, donc j'ai ajouté une ligne supplémentaire dans mon fichier web.config en spécifiant le délai d'expiration maximum. S'il vous plaît, informez-moi si je suis sur la bonne voie.

Y a-t-il des paramètres supplémentaires à appliquer sur mon serveur IIS pour que l'opération aboutisse? Sinon, y a-t-il quelque chose qui me manque? Si vous avez déjà vécu cela, veuillez m'informer de ce qu'il faut faire.

Merci beaucoup, Ralph

Répondre

0

Cela peut être dû à beaucoup de procuration ouvert avant. Je vous suggère donc de supprimer Service.Reference.Config avec la référence du service Web et d'ajouter à nouveau la référence du service pour voir s'il résout votre problème.

0

Ajout à la réponse précédente, vous pouvez essayer de configurer le temps d'exécution sur la classe proxy, reportez-vous cette discussion

Et vous appel de service effectue une tâche longue en cours d'exécution, vous pouvez préférer avoir un temps long out pour tout appel de service Web en définissant le délai d'attente dans la classe proxy comme indiqué ci-dessus.