我有几个项目,我刚从Visual Studio 2003和ASP.NET v1升级到Visual Studio 2008和ASP.NET v2。我明确地设置了一种类型的“text / xml”,并且过去很好,浏览器会将其渲染为xml,IE甚至会在每个标记旁边放置可爱的小+/-符号。升级后,IE只渲染元素内容,忽略所有标记,就像内容是html一样。
Response.ContentType = "text/xml";
String resp = "<soap:Envelope>...blah, blah, lots of xml...</soap:Envelope>\n";
Response.Write(resp);
我进行了升级,因为某人(字面意思)冲洗了我们的服务器并且必须重建,因此在此过程中,我们从IIS 5.1迁移到IIS 6.0。
任何人都知道如何解决这个问题? TIA。
答案 0 :(得分:1)
在编写内容之前,您应该执行以下操作:
Response.Buffer = true;
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "text/xml";
然后,在将XML数据写入响应后,只需调用Response.End();
以确保没有其他任何内容被添加/更改。
EDIT1:让我们尝试以下操作:
在开始字符串“&lt; soap:Envelope&gt; ...”之前添加行<?xml version='1.0' encoding='UTF-8'?>
< / p>
如果仍然无法正常工作,那么我的最后一个镜头是将内容类型更改为application/soap+xml