我psot一个xml给你一个页面。这个页面收到xml后返回一个xml值回去,代码如下:
XmlDocument xd = new XmlDocument();// GetXmlData("1");
xd.LoadXml(@"<?xml version='1.0' encoding='UTF-8'?><returnvalue>1</returnvalue>");
byte[] tdata = Encoding.UTF8.GetBytes(xd.InnerXml);Stream webStream = Response.OutputStream;
webStream.Write(tdata, 0, tdata.Length);
webStream.Close();但是在Stream webStream = Response.OutputStream;就出现异常了,“Response.Headers”引发了“System.PlatformNotSupportedException”类型的异常,高手看下,什么问题啊?

解决方案 »

  1.   


                XmlDocument xd = new XmlDocument();// GetXmlData("1"); 
                xd.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\" ?><returnvalue>1</returnvalue>");
                byte[] tdata = System.Text.Encoding.UTF8.GetBytes(xd.InnerXml);            System.IO.Stream webStream = Response.OutputStream;
                webStream.Write(tdata, 0, tdata.Length);
                webStream.Close(); 
    代码测试通过
      

  2.   

    惨了,我这里还是报错啊,为什么啊
    而且我觉得System.IO其实是一样的啊
      

  3.   

    而且我这里还有个问题,就是返回值里除了我的xml,怎么还有html部分啊?
      

  4.   

    “webStream.Length”引发了“System.NotSupportedException”类型的异常
    “webStream.Position”引发了“System.NotSupportedException”类型的异常
    “webStream.ReadTimeout”引发了“System.InvalidOperationException”类型的异常
    “webStream.WriteTimeout”引发了“System.InvalidOperationException”类型的异常运行到Stream webStream = Response.OutputStream;时,就是这些错误提示。
      

  5.   

    Response.Clear();我也试了,加在Stream webStream = Response.OutputStream; 前面,不行啊
    还是有html部分啊,而且还报错,报错我的xml(当然是包括html的)还能返回回去,晕了,这样返回回去的就不是xml了,就解析不了了。怎么办啊
      

  6.   

    Response.Write (xd.OuterXml);
    就可以了
      

  7.   

    为了防止出现乱码,可以这样
    Response.Clear();
    Response.ContentType = "text/xml";
    Response.Charset = "UTF-8";
    XmlTextWriter writer = new XmlTextWriter(Response.OutputStream,System.Text.Encoding.UTF8);
    writer.Formatting = Formatting.Indented;
    xd.WriteTo( writer );
    writer.Flush();
    Response.End();
      

  8.   

    楼上的可以,可以走通了。
    但是走到Response.Clear();
    会有个异常:
    “Response.Headers”引发了“System.PlatformNotSupportedException”类型的异常
    {"此操作要求使用 IIS 集成管线模式。"}
    是iis的问题吧,出现此问题,不影响程序使用吧?
      

  9.   

    It appears you are using IIS 7.  If so, you need to change the application pool type from classic to integrated.  The integrated pipeline mode is IIS 7 specific.从经典模式改成集成模式即可
      

  10.   

    参考
    http://msdn.microsoft.com/zh-cn/library/bb515251.aspx
      

  11.   

    我的iis是6.0,但是我是在vs2008中调试发现的。
    如果我的系统是发布在ii6下的,是不是就没有问题了啊?
      

  12.   

    只有在 IIS 7.0 处于集成管线模式而且 .NET Framework 至少为 3.0 版本时,才支持 Headers 属性。如果您尝试访问 Headers 属性并且不满足上述两个条件中的任何一个条件,则会引发 PlatformNotSupportedException。