У меня есть приложение, в котором время от времени я получаю странную ошибку. Это кусок кода:NullReferenceException при отправке вывода 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()
Ошибка я получаю это: Сообщение: Ссылка на объект не указывает на экземпляр объекта.
on line XMLWriter.Flush();
Чтобы сделать вещи более увлекательными, это абсолютно не воспроизводимо. Время от времени это происходит ...
Поскольку это происходит при очистке XML, я угадываю объект, который теперь является нулевым, должен быть Response.OutputStream.
Это соответствующая часть трассировки стека:
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
Мой вопрос, в каких случаях это могло случиться? Этот сервер является сервером с длинным опросом, поэтому клиент запрашивает что-то, и я не могу ответить в течение 30 секунд ... Возможно ли, что этот поток станет Null, если клиент отключится (т.е. закрывает окно браузера) ?
Любые другие идеи? (любые указатели оцениваются)
Я понимаю это, но проблема что-то в OutputStream (используется только при написании) равна нулю? – 2008-11-12 20:54:59