升级后,响应是text / html而不是text / xml

时间:2010-12-10 19:14:11

标签: asp.net iis

我有几个项目,我刚从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。

1 个答案:

答案 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