【问题标题】:ASP.net Custom Http Modules - IhttpModuleASP.net 自定义 Http 模块 - IhttpModule
【发布时间】:2014-09-09 09:36:24
【问题描述】:

运行 IIS 7

我正在尝试实现一个自定义 Http 模块,我真正想要的是实现 gzip 压缩。

似乎有几种方法可以做到这一点。

我试图通过访问 HttpApplication.BeginRequest 事件并在其中添加一些将使用 gzip 的代码来做到这一点。

我正在使用 umbraco,所以我没有 global.asax 文件,所以我得到的是我网站的应用程序代码文件夹中的一个类文件:

public class GzipHttpCompressionModule : IHttpModule
{
public GzipHttpCompressionModule()
{}

public void Dispose()
{}

public void Init(HttpApplication context)
{
    context.BeginRequest +=
        (new EventHandler(this.Application_BeginRequest));

}

private void Application_BeginRequest(object sender, EventArgs e)
{
    HttpContext context = HttpContext.Current;
    context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
    HttpContext.Current.Response.AppendHeader("Content-encoding", "gzip");
    HttpContext.Current.Response.Cache.VaryByHeaders["Accept-encoding"] = true;
}

}

然后在我的 web-config 文件中注册模块

<httpModules>
..
<!-- Register Custom Http Gzip Module   -->
<add name="GzipHttpCompressionModule" type="GzipHttpCompressionModule"/>
..
</httpModules>

当我在 Application_BeginRequest 中设置断点时,我浏览网站时它永远不会被击中

Enable IIS7 gzip

有什么想法吗?为什么这不起作用?

【问题讨论】:

    标签: c# asp.net iis gzip httpmodule


    【解决方案1】:

    &lt;system.web&gt; 标记内的&lt;httpModules&gt; 标记仅在旧 IIS 版本 (<system.webServer> 中改用&lt;modules&gt;

    更多信息在这里:http://www.byteblocks.com/post/2010/09/16/HttpModule-Not-Working-In-IIS7.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 1970-01-01
      • 2014-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多