【问题标题】:Dynamic adding HttpModules and HttpHandlers动态添加 HttpModules 和 HttpHandlers
【发布时间】:2011-02-01 01:18:50
【问题描述】:

在运行时从网站添加/删除 HttpModules 和 HttpHandlers 是个好主意吗? 我正在寻找使我的网站尽可能动态的方法,而无需重新上传更改的内容。类似配置文件的东西。 规则引擎存在,但学习它们似乎很痛苦。我的观点可能是错误的。请提出在运行时更改代码逻辑的可能方法。

【问题讨论】:

    标签: asp.net-3.5


    【解决方案1】:

    一种可能的方法是创建一个通用的 HTTPHandlerFactory,它反过来返回请求的处理程序。

    查看link 了解更多信息

    【讨论】:

      【解决方案2】:

      ASP.NET 4 提供了 PreApplicationStartMethod 功能,可用于以编程方式添加 HttpModules。

      我刚刚在 http://www.nikhilk.net/Config-Free-HttpModule-Registration.aspx 上写了一篇博客文章。

      基本思想是您创建一个派生的 HttpApplication,它提供了在启动时动态添加 HttpModules 的能力,然后每当在应用程序域中创建每个 HttpApplication 实例时,它都会将它们初始化到管道中。

      【讨论】:

        【解决方案3】:

        .NET4 及以上版本:

        为了动态安装 HttpHandler,您需要创建一个 HttpModule 包装器来执行此操作。查看答案:Any way to add HttpHandler programmatically in .NET?

        动态添加http模块:

        安装包 Microsoft.Web.Infrastructure

        Install-Package WebActivator

        [assembly: PreApplicationStartMethod(typeof(MyPreStartClass), "Start")]
        
        namespace .....
        {
            public static class MyPreStartClass
            {
                public static void Start()
                {
                    DynamicModuleUtility.RegisterModule(typeof(FooHttpModule));
                }
            }
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-07-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-19
          • 2014-05-17
          • 1970-01-01
          相关资源
          最近更新 更多