目前,我对用于ASP.NET-MVC的IIS6感到困惑(因为我还不能升级到Server 2008)。似乎不知道我的RESTful URL是动态文件,并且未压缩它们。

我所有的旧.aspx文件都已压缩(如Fiddler所示),但'/products/1001'类型的URLS没有压缩。

有没有办法让IIS6在IIS6中压缩我的ActionResult,而无需使用ActionFilter for compression之类的东西。

我假设IIS7足够聪明,可以知道它们是动态的。

如果您能告诉我IIS6甚至一开始就知道哪些文件是动态的,则可以加分!

最佳答案

由于从1.0版开始通常使用HttpModules实现ASP.NET的HTTP压缩,并且HttpModules仍属于MVC框架使用的ASP.NET请求管道,因此您仍可以使用HttpModule注入(inject)GZIP或放气响应过滤器。

在这里,您可以找到一个很好的,开放源码的,随时可以交付的实现:
HttpCompress by Ben Lowery(可从Google Code下载)

您只需要添加对DLL的引用,并在web.config中添加几行即可。它已经可以处理非常特殊的情况和异常(exception)情况。您可以将排除项添加到web.config中,而不是基于文件扩展名(例如IIS6),而不是基于mime类型,这可能正是您所需要的。

我应该补充一点,我实际上已经使用该库在IIS6上运行了ASP.NET MVC网站,因此我可以确认这在实践中是可行的。

10-02 08:33