2009-07-13 7 views
1

Je développe une application client-serveur en C# en utilisant le service Web WSE. Une des choses que l'utilisateur peut faire est d'envoyer des images jpg au serveur pour une sauvegarde via le web-service. Des erreurs récemment étranges ont eu lieu. Cela ne se produit pas pour tous les utilisateurs, seulement quelques-uns. Du côté client l'exception est uneWSE 3.0 se bloque lorsque ClearHeaders est appelé

System.Net.WebException Exception message: The operation has timed out

et sur le serveur l'avertissement suivant se trouve dans l'Observateur d'événements:

Exception information:  
Exception type: HttpException 
Exception message: Server cannot clear headers after HTTP headers have been sent. 
Request information 
Request URL: MyUrl/Service.asmx 
Request path: /MyWebService/Service.asmx 
User host address: ------- 
User: 
Is authenticated: False 
Authentication Type: 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Thread information: 
Thread ID: 7 
Thread account name: NT AUTHORITY\NETWORK SERVICE 
Is impersonating: False 
Stack trace: at System.Web.HttpResponse.ClearHeaders() 
at System.Web.Services.Protocols.SoapServerProtocol.WriteException(Exception e, Stream outputStream) 
at System.Web.Services.Protocols.ServerProtocolFactory.Create(Type type, HttpContext context, HttpRequest request, HttpResponse response, Boolean& abortProcessing) 
at System.Web.Services.Protocols.WebServiceHandlerFactory.CoreGetHandler(Type type, HttpContext context, HttpRequest request, HttpResponse response)

Est-ce que quelqu'un a une idée où cette erreur peut provenir? J'ai déjà essayé d'augmenter le "maxRequestLength" dans web.config à 16Mb mais ceci ne le fixe pas.

Cordialement /Daniel

Répondre

0

Utilisez-vous WSE parce que vous avez pas le choix? C'est vraiment la seule raison de l'utiliser, car c'est plutôt obsolète. Êtes-vous incapable d'utiliser WCF?

+0

c'est malheureusement un héritage. Au moins, rien ne peut changer en ce moment ... –

0

J'ai vécu la même chose. Pendant que je regardais le problème, je suis tombé sur cette question. Je voulais juste partager ce que j'ai trouvé jusqu'ici. Ce que je trouve sur le net est assez simple. En augmentant maxRequestLength (à un montant raisonnable) dans votre section system.web du fichier web.config, vous pouvez résoudre ce problème. Je suppose, n'ayant pas fait d'autres recherches que cela, que vos paramètres par défaut pour maxRequestLength ne gèrent pas la taille de la requête présentée lorsqu'un de vos utilisateurs envoie un fichier JPG plus volumineux à sauvegarder dans votre système via votre Service Web WSE.

Vous pouvez également ajouter du temps à votre paramètre d'exécutionTimeout.

Questions connexes