J'ai une application où de temps en temps je reçois une erreur étrange. Ce est le morceau de code:NullReferenceException lors de l'envoi de la sortie XMLWrite à httpContext.Response.OutputStream
Dim XMLWriter As New System.Xml.XmlTextWriter(Me.Context.Response.OutputStream, Encoding.UTF8)
XMLWriter.WriteStartDocument()
XMLWriter.WriteStartElement("Status")
Message.SerializeToXML(XMLWriter)
XMLWriter.WriteEndElement()
XMLWriter.WriteEndDocument()
XMLWriter.Flush()
XMLWriter.Close()
L'erreur que je reçois est: Message: Référence d'objet non définie à une instance d'un objet.
sur la ligne XMLWriter.Flush(); Pour rendre les choses plus amusantes, ce n'est absolument pas reproductible. Cela arrive juste de temps en temps ....
Comme il se passe lors du vidage du XML, je devine que l'objet qui est maintenant nul doit être le Response.OutputStream.
Ceci est la partie pertinente de la trace de la pile:
Description:
An unhandled exception occurred and the process was terminated.
Exception: System.NullReferenceException
Message: Object reference not set to an instance of an object.
StackTrace: at System.Web.HttpWriter.BufferData(Byte[] data, Int32 offset, Int32 size, Boolean needToCopyData)
at System.Web.HttpWriter.WriteFromStream(Byte[] data, Int32 offset, Int32 size)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.Xml.XmlTextWriter.Flush()
at RequestData.CompleteRequest(MessageBase Message) in RequestData.vb:line 142
Ma question est, dans ce cas, cela pourrait-il se produire? Ce serveur est un serveur à interrogation longue, donc le client demande quelque chose, et je ne peux pas répondre pendant 30 secondes ... Est-il possible que ce flux devienne nul si le client se déconnecte (c'est-à-dire ferme la fenêtre du navigateur) ?
D'autres idées? (tout pointeur apprécié)
Je comprends cela, mais quelque chose de problème dans le OutputStream (qui est seulement utilisé lors de l'écriture) est nul? –