1

我开发了一个自定义托管 HttpModule (.NET 2),将其安装在GAC上,并将其添加到Modules全局 IIS 8.5 部分。

对于每个具有集成模式的网站,此模块在其 Modules 部分中显示为Inherited,并且它按设计用于所有 .NET 2 和 .NET 4 Web 应用程序(无需操作每个站点的Web.Config)。

至于经典模式下的网站,它不存在,因此无法在经典 Web 应用程序中访问和工作。

我尝试以任何方式编辑applicationHost.configWeb.Config(v2 和 v4),但没有得到任何结果(似乎Machine.Config没有地方放)。

在不将 dll 添加到 bin 和/或编辑每个网站的 Web.Config 的情况下,如何以及在何处全局注册相同的模块以处理经典模式?

4

1 回答 1

0

好的,现在可以了。备查:

我编辑C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config并没有得到响应,因为 IIS 从 64 位框架读取配置,所以在里面添加模块C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config解决了这个问题。

或者对于 AppPools < .NET 4,C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\machine.configC:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config必须进行编辑。

对于集成模式,通过 IIS GUI 将自定义模块添加到主模块部分就足够了。

因此,安装在 GAC 上的一个自定义模块可供 IIS、集成和经典、32 位和 64 位下的所有 .NET 2.0 + 网站访问,无需单独编辑每个网站的 Web.Config。

这对于主机管理员和服务器管理员在无需直接干预的情况下监控网站活动(错误、DDOS 攻击等)非常有用。

于 2018-03-24T14:28:59.347 回答