2009-04-07 3 views
0

내가 XML을 생성하기 위해 노력하고있어 던졌습니다 나는이 예외가 발생 : 그것은 나에게 예외 제공WriteStartDocument는() InvalidOperationException이

XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8); 

xmlWriter.WriteStartDocument(); 
xmlWriter.WriteStartElement("userInfo"); 

:

WriteStartDocument needs to be the first call.

을하지만 당신이 볼 수 있듯이을, I 먼저 WriteStartDocument()를 호출했습니다!

아이디어가 있으십니까?

+0

거기에 뭔가 이상한 점이 있습니까? 난 당신이 그것을 가지고 정확하게 코드를 시도하고 괜찮아요, 내가 응답 전에 손에 뭔가를 쓸지라도. –

+0

왜 이것이 작동하지 않는지 나는 모른다. 난 그냥 새로운 프로젝트에 그것을 시도하고 잘 작동합니다. 내 VPC 환경에 있지 않습니다. –

+0

이것은 매우 이상합니다. 이제는 아무런 변화없이 작동합니다. –

답변

2

그러나 이미 응답 스트림에 다른 항목 (예 : HTTP 헤더)이 있습니다.

아마도 XML을 StringWriter에 쓰고 그 문자열을 Response에 쓰는 것이 좋습니다.

0

에만 Page 지시문 즉, 왼쪽되도록 내용의 당신의 영문 파일을 삭제하는 것을 잊지 마십시오

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> 

대신 Response.OutputStream의 Response.Output를 사용

XmlTextWriter xmlWriter = new XmlTextWriter(Response.Output); 
xmlWriter.WriteStartDocument(); 
xmlWriter.WriteStartElement("userInfo"); 
xmlWriter.WriteEndElement(); 
+0

여전히 똑같습니다. Page_Load에이 코드가 있습니다. 영향을 미칩니 까? –

+0

Page_Load에서 나에게 적합합니다. –

1

사용해보기 :

XmlTextWriter xmlWriter = new XmlTextWriter(Response.OutputStream, Encoding.UTF8); 
xmlWriter.Formatting = Formatting.Indented; 
xmlWriter.WriteStartDocument(false); 
xmlWriter.WriteStartElement("userInfo");