gpt4 book ai didi

asp.net - IIS7.0中如何使静态Html页面通过HttpModule?

转载 作者:行者123 更新时间:2023-12-04 20:19:00 27 4
gpt4 key购买 nike

我创建了一个简单的 HttpModule,它在将响应发送到客户端之前从响应中删除空格。这适用于 IIS7.0 上的 aspx 页面,但如果我创建一个静态 html 页面并调用它,HttpModule 不会启动(我知道的方式是因为源包含空格,否则应该删除)。显然有些事情我做得不对,但不知道是什么。

我的网站位于带有 .NET 4.0 和 ManagedPipelineMode = Integrated 的应用程序池中.

我已将我的模块添加为 ManagedModule 并引用 GAC 的强名称 key 程序集。

谢谢

编辑 - 这是来自 web.config 的 system.webserver 部分

<system.webServer>
...
<modules runAllManagedModulesForAllRequests="true">
<add name="RemoveWhitespaceHttpModule"
type="HttpModules.Modules.RemoveWhitespaceHttpModule, HttpModules,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=8a83u4bi47o9fo0d"
preCondition="" />
</modules>
<defaultDocument>
<files>
<add value="TestForm.aspx" />
</files>
</defaultDocument>
</system.webServer>

编辑 - 修复它。对于任何感兴趣的人,这就是我的模块检查响应然后决定是否继续删除空格的方式
if (contentType.Equals("text/html") 
&& httpContext.Response.StatusCode == 200
&& httpContext.CurrentHandler != null)
{ ... }

问题在于 上面的第三个条件httpContext.CurrentHandler != null .在为静态 .html 页面调用此模块时,currentHandler 为空,因此代码从未进入内部来操作 html。我已经删除了这第三个条件,它现在可以工作了。谢谢大家的回答

最佳答案

这应该可以解决问题,在 web.config 中:

<modules runAllManagedModulesForAllRequests="true"></modules>

这是一个快速简便的解决方案,但可能会导致问题/性能问题。

关于asp.net - IIS7.0中如何使静态Html页面通过HttpModule?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8941658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com