日期:2014-05-17  浏览次数:20482 次

VS2010如何Web打印预览服务器的Excel文件?
最近在做一个.NET1.1的系统迁移到.NET4.0平台上,目的是为了让系统能最大限度地适应新的Win7等新系统,也能对旧的运行环境兼容,可是报表预览的一段代码有点问题,一直没有找到什么办法解决。
主要问题出现在以下代码:
C# code

public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
        {
            context.Response.Cache.SetCacheability(HttpCacheability.NoCache);//设置客户端浏览器无缓存
            return PageParser.GetCompiledPageInstance(url,AppRootPath, context );
        }



在执行到
C# code
return PageParser.GetCompiledPageInstance(url,AppRootPath, context );
context出现一个要求在IIS7.0管线模式下运行的错误。
此问题主要是由于.NET 4.0中的HttpContext比.NET 1.1中多了几个“操作要求 IIS 7.0 处于集成管线模式,并且要求 .NET Framework 至少为 3.0 版本。”的成员。
紧急向各位大牛求助。

------解决方案--------------------
IIS 7 经典模式改成集成模式
在 IIS 7.0 处于集成管线模式 .NET Framework 至少为 3.0 版本时,才支持 Headers 属性
XML
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();

------解决方案--------------------
参考
------解决方案--------------------
强烈建议重新生成4.0的代码,反正大部分都是生成,改下就好了,已经4了没理由还用1.