【问题标题】:IIS 7 integrated pipeline - modifying the response HTMLIIS 7 集成管道 - 修改响应 HTML
【发布时间】:2011-12-20 11:15:48
【问题描述】:

我正在尝试编写一个 IIS 扩展,用于在将请求发送回客户端时修改响应 HTML。我知道传统上这将是 ISAPI 过滤器的工作,但我是一名 .Net 开发人员,我已经阅读了在 .Net is a bad idea 中实现 ISAPI 过滤器。

我在一些地方读到 IIS 7 闪亮的新集成管道模式现在应该允许我在 .Net 中编写模块,这些模块通过实现IHttpModule 提供与 ISAPI 过滤器相同的功能,但是我无法工作了解如何修改非 ASP.Net 请求的响应 HTML。

我找到的关于如何执行此操作的唯一资源是 this article,但这似乎不适用于非 ASP.Net 资源或在调用 HttpApplication.CompleteRequest 的情况下,即使集成管道模式是已启用。

如何用 C# 编写一个 IIS 模块,允许我修改 所有 请求的响应 html/数据?

【问题讨论】:

    标签: c# asp.net isapi integrated-pipeline-mode


    【解决方案1】:

    我认为您必须通过 ASP.NET 模块路由所有请求。

    【讨论】:

    • 即使我这样做了,如果在处理页面期间调用HttpApplication.CompleteRequest,过滤器也会被忽略 - 在我正在处理的应用程序中,这种情况经常发生。
    • 好的,抱歉,不知道。看起来很难:-(
    【解决方案2】:

    不确定这对于 .NET 是否真的可行,但请查看 http://aspnetresources.com/articles/CustomErrorPages esp。关于安装 HttpModule 的部分 - 也许这更多的是 IIS 如何看待您的模块。

    虽然我和你一样认为 .NET-ISAPI-Filter 是一个坏主意,但我仍然会检查 this 看看这对你的情况有多大影响。

    一个非常困难的选择是实现一个本地代理(即,您可以编写一个基于 HttpListener 的服务器或使用一个库来简化实现),它侦听要公开的端口并重新配置 IIS 以使用其他仅限端口/本地主机...这样您就可以过滤您想要的任何内容...尽管恕我直言,这也会影响性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-25
      • 2013-03-08
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多