【发布时间】:2011-01-21 00:43:14
【问题描述】:
我用来获取 HTTP 模块的代码基本上是
HttpModulesSection modules = ((SystemWebSectionGroup)config.GetSectionGroup("system.web")).HttpModules;
// Depending on what we need to do...
//modules.Modules.Add(CreateSomeModule());
//modules.Modules.Remove("SomeOtherModule");
这在 IIS7 之前运行良好。迁移命令%SystemRoot%\system32\inetsrv\appcmd migrate config "website/" 将模块移动到system.webServer,所以我的代码现在更新了错误的部分。
是否有内置方法来获取应该修改的正确模块部分?还是我必须添加一个检查 Request.ServerVariables["SERVER_SOFTWARE"] 并根据我返回的字符串返回 system.web/system.webServer?
【问题讨论】:
-
请说明您对模块列表所做的工作。
-
@John,我们创建了一个新的 HttpModuleAction,然后我们将它添加到 HttpModules 集合中。更新了问题以显示更清晰的示例。
-
你为什么要编辑 web.config?另外,你是从什么代码做的?拥有 web.config 的同一个网站?
-
@John,这不是
modules.Modules.Add所做的吗?它将必要的行添加到 web.config 文件中以引用该模块。该代码位于拥有 web.config 的网站上。这不是我的网站,所以我不能 100% 确定这些模块是如何工作的,除非它们必须在 web.config 中被引用才能工作。 -
不,通常不会修改 web.config。正如下面 user53870 告诉你的,你只需要修改 Modules 属性
标签: c# asp.net iis httpmodule