我在使用 ASP.NET MVC + IIS 7.5 页面时遇到了一些问题。我有一个非常广泛的页面,有时会超过 15.0MB 未压缩和 1.5MB 压缩。
当它发生时,看起来连接永远不会结束。加载图标永远存在,如果我在开发人员工具中看到,连接处于挂起状态,尽管已收到整个 HTML。
它发生在 Chrome、Firefox 和 Internet Explorer 上,所以我认为问题出在 ASP.NET 或 IIS 上。
我需要做一些特别的事情来处理这样的页面吗?
我在使用 ASP.NET MVC + IIS 7.5 页面时遇到了一些问题。我有一个非常广泛的页面,有时会超过 15.0MB 未压缩和 1.5MB 压缩。
当它发生时,看起来连接永远不会结束。加载图标永远存在,如果我在开发人员工具中看到,连接处于挂起状态,尽管已收到整个 HTML。
它发生在 Chrome、Firefox 和 Internet Explorer 上,所以我认为问题出在 ASP.NET 或 IIS 上。
我需要做一些特别的事情来处理这样的页面吗?
15MB 将非常缓慢且无响应 - 这不是您的用户想要的 - 无论他们多么想“查看所有已发布的文件”。
例如,我会介绍分页到您的网页,这样就不会一次下载所有文件。
但是,如果您真的想要一个 15MB 的页面,您可能会发现限制配置可以提供帮助。
您说整个 HTML 已被证明已收到。那么 IIS 或 ASP.NET 怎么会成为问题呢?一旦发送了内容,它们就脱离了循环。
可能是浏览器的问题。
您可以尝试将Response.Buffer设置为false
.
Buffer 属性指示是否缓冲页面输出。当页面输出被缓冲时,服务器不会向客户端发送响应,直到当前页面上的所有服务器脚本都已处理完毕,或者直到调用了 Flush 或 End 方法。
默认情况下,Response.Buffer
设置为true
,因此输出将被缓冲。也许通过将响应提供给客户端,浏览器将按照您的需要运行。
不过,您确实需要在将任何输出发送到浏览器Response.Buffer
之前设置 的值。
也许尝试 IIS 压缩?
IIS provides the following compression options:
Static files only
Dynamic application responses only
Both static files and dynamic application responses
http://technet.microsoft.com/en-us/library/cc771003%28v=ws.10%29.aspx