Bonjour,
J'ai implémenté une procédure stockée dans notre logiciel et lors de l'exécution de celle-ci j'obtiens l'erreur suivante :
System.ServiceModel.CommunicationException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d). ---> System.IO.IOException: The write operation failed, see inner exception. ---> System.ServiceModel.CommunicationException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d). ---> System.IO.PipeException: There was an error reading from the pipe: The pipe has been ended. (109, 0x6d).
at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes)
--- End of inner exception stack trace ---
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.ConnectionStream.EndRead(IAsyncResult asyncResult)
at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult)
--- End of inner exception stack trace ---
at System.Net.Security.NegotiateStream.EndRead(IAsyncResult asyncResult)
at System.ServiceModel.Channels.StreamConnection.EndRead()
--- End of inner exception stack trace ---
at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result)
at System.ServiceModel.Channels.FramingDuplexSessionChannel.EndTryReceive(IAsyncResult result, Message& message)
at System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext)
La procédure stockée se charge de récupérer un certain nombre d'enregistrements par page, et nous avons environs 2.660.000 entrées dans la table. L'erreur survient lorsqu'on demande les dernières pages (par exemple à 50 enregistrements par page, on demande la page 53.000 ou plus). Même en incrémentant le nombre de résultats par page, l'erreur apparaît toujours pour les dernières pages. Dans mes configs, j'ai maximisé toutes les valeurs dans le maxBufferSize (ServiceModel), les timeout, etc. La procédure retourne des résultats quand elle exécutée directement dans SQLServer et environ 4-5min pour charger la dernière page. Il semble donc que le problème survienne lorsque le résultat doit être retourné au client. Toutes mes recherches pour des réponses en ligne n'ont pas réglé mon problème. Sauriez-vous de quoi il s'agit ?
Nous utilisons SQLServer 2008 R2, et l'application est écrite en ASP.NET avec le framework 4.0, du C# et du Javascript. Les parefeu ont été configurés entre les postes client et serveur. Merci pour vos réponses!
Partager