나는 지금 어딘가에 이상한 오류가 발생하는 응용 프로그램이 있습니다. 이 코드의 조각 :XMLWrite 출력을 httpContext.Response.OutputStream에 보낼 때 NullReferenceException이 발생했습니다.
이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()
내가지고있어 오류는 다음과 같습니다 메시지 : 개체 참조가 개체의 인스턴스로 설정되지 않았습니다.
온라인 XMLWriter.Flush();
더 재미있는 일을하려면 절대 재현 할 수 없습니다. 그냥 때마다 발생합니다 ....
XML을 플러시 할 때 나는 이제 null 인 Object를 추측하고 있기 때문에 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 내에서 문제가되는 부분은 null이라는 사실을 알고 있습니까? –