我正在开发一个应用程序,它将使网站管理员能够启用/禁用HttpModule,而无需实际打开和编辑web.config文件。我发现使用System.Configuration命名空间使用appSettings节点很容易,但它似乎没有包含修改system.web / httpModules节点的方法。
如果没有简单地使用XDocument / XElement,有没有人知道另一种方法呢?我已经看到了涉及一些应用程序启动或应用程序启动前事件的其他几种方式,但我不确定这对我来说是一个可行的解决方案,因为这是一个已经运行的网站的HttpModule。我找到了System.Web.Configuration.HttpModulesSection类,但这似乎是只读的。非常感谢任何帮助。
答案 0 :(得分:0)
一旦应用程序启动前完成,模块列表就是不可变的。 IIS需要列表是不可变的,所以我们不能在ASP.NET层中更改它。
您最好的做法是让模块始终注册,但如果已经“禁用”,则使其方法无操作。您可能会发现将原始IHttpModule包装在帮助程序包装器IHttpModule中更容易实现此目的。