【问题标题】:ASP.NET MVC compression options in IIS6IIS6 中的 ASP.NET MVC 压缩选项
【发布时间】:2010-10-13 13:29:12
【问题描述】:

现在我坚持使用用于 ASP.NET-MVC 的 IIS6(因为我还不能升级到 Server 2008)。它似乎不知道我的 RESTful URL 是动态文件并且没有压缩它们。

我所有的旧 .aspx 文件都被压缩(如 Fiddler 中所示),但不是 '/products/1001' 类型的 URL。

有什么方法可以让 IIS6 在不使用 ActionFilter for compression 之类的东西的情况下在 IIS6 中压缩我的 ActionResults。

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

如果你能告诉我 IIS6 是如何一开始就知道哪些文件是动态的,那就加分!

【问题讨论】:

    标签: asp.net-mvc iis-6 compression


    【解决方案1】:

    这是一个使用通配符映射和无扩展 URL 的 MVC 和 IIS 6 似乎对我有用的选项:

    1. 使用管理工具全局设置动态和静态压缩
    2. 编辑 metabase.xml,使 HcScriptFileExtensions 在 CompressionSchemes 中为空。这将尝试压缩所有内容(包括 jpg 和 gif)。
    3. 使用 DoDynamicCompression = "false" 属性在文件夹级别关闭动态压缩。这假设您的所有静态内容都是一个目录。
    4. 在 HcFileExtensions 属性中添加您想要压缩的静态文件扩展名(css、js 等)。

    这是一种解决方法,但我暂时使用 Server 2003 和 IIS 6。

    【讨论】:

      【解决方案2】:

      在 web 配置中你应该注册 StaticFileHandler 和 HTTP 模块

      <add verb="GET,HEAD,POST" path="*" type="[Web.Front.Modules].StaticFileHandler"/>
      <add name="HttpCompressionModule" type="[Web.Front.Modules].HttpCompressionModule"/>
      

      你会发现源代码here

      但不要忘记在 IIS 上打开压缩

      【讨论】:

        【解决方案3】:

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

        您可以在这里找到一个非常好的、开源的、可立即发布的实现: HttpCompress by Ben Lowery(在Google Code下载)

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

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

        【讨论】:

        • 所以我最好使用这样的东西并排除我不想要的文件 - 例如 JPEG、SWF 吗?另一种选择是在我问的另一个问题中:stackoverflow.com/questions/649409/… - 并将其用于 CompressFilter
        • 我会使用 HttpModule,因为它可以让你的控制器保持清洁,并且它将应用于每个请求(除了你提到的排除的 mime 类型),例如。 G。 CSS 文件、静态 HTML 等,不仅仅是由控制器操作处理的请求。
        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 2021-07-28
        • 1970-01-01
        • 2010-09-07
        • 1970-01-01
        • 2010-11-06
        • 2011-04-17
        相关资源
        最近更新 更多