首先:如果下面的描述是模糊的,我真的很困惑这个问题,所以请原谅。
我的网站是用.NET4,ASP.NET WebForms编写的,运行在不同的环境中,一些是IIS6,一些是IIS7(或7.5)。 有些使用SSL,有些则不使用。
每当我在IIS7主机工作正常,不pipe浏览器或HTTP / HTTPS。 当我在IIS6中托pipe它时,我对Internet Explorer 7/8有着巨大的性能影响(即该站点确实非常慢)。 但只适用于不使用SSL的网站(即HTTP)。 当启用SSL时,网站要快得多。 IIS6站点托pipe在带有Service Pack 2的Windows Server 2003 x64上。
当我安装.NET4并将网站升级到使用.NET4时,这些问题就开始了。 即使服务器是x64,也使用.NET4的32位版本。
当使用fiddler / dynaTrace和类似工具时,我们意识到.aspx文件的传输在IE7和IE8(IIS6不使用SSL)上要慢得多。 正常传输时间约为500ms,但在非SSL IIS6站点上使用IE7时,我们有10-20秒左右的时间(20-40倍)。 当我们有高负载的时候,你可以实际看到在屏幕上popup图像的图像。 首先绘制一个下拉列表,然后是其中的文本,最后是alignment下拉列表中的文本的CSS。 页面呈现“逐渐”非常缓慢,所以你可以轻松地按照渲染顺序。
我们有一些迹象表明,压缩可能是原因,因为默认情况下IIS7启用一些IIS6不压缩的压缩。
不幸的是,我不能提供任何这种行为的链接或演示,因为它是一个封闭的系统。
1)启用SSL以何种方式提高.aspx的传输时间? 它是以更大的块还是甚至一块大块发送?
2)什么原因,IIS7比IIS6快得多,我们可以调整我们的IIS6安装它?
3)关于我们的IIS6设置可能有什么问题,或者如何提高性能,有什么想法?
再一次 – 抱歉的模糊的问题,但所有的想法/技巧/build议表示赞赏。
听起来像一个有趣的挑战。 我还没有看到任何完全一样的东西,我无法想象http和https之间的区别会导致这种情况。
排除故障的最佳方法是将其分解成可能的最小部分。 一些可能的build议:
非常感谢Scott Forsyth提供的所有帮助和提示。 问题解决了,它是由应用程序/网站内的代码造成的,有点让人不好意思。
问题是在Page.OnInit中调用“Response.Buffering = false”。 我不知道为什么这个从真到假改变了,但我会进一步调查。 正确的解决scheme可能是使用Response.Flush()时,大内容发送到客户端。
我在这里看到一些相关的文章:
http://bytes.com/topic/asp-classic/answers/59607-response-buffer-iis-6-0-a (链接到此KB: http : //support.microsoft.com/? id= 840875 )
http://technet.microsoft.com/en-us/library/bb727078.aspx (技巧14:使用响应缓冲)
http://msdn.microsoft.com/en-us/library/ff647787.aspx