2010-03-26 55 views
3

在運行時從網站添加/刪除HttpModules和HttpHandlers是個好主意嗎? 我正在尋找使我的網站儘可能動態的方法,而無需再次上傳更改的內容。像配置文件。規則引擎存在,但學習它們看起來很痛苦。從我的角度來看,我可能是錯的。請建議在運行時更改代碼中邏輯的可能方法。動態添加HttpModules和HttpHandlers

回答

1

一種可能的方法是創建一個通用的HTTPHandlerFactory,然後返回請求的處理程序。

退房的link更加清晰

7

ASP.NET 4提供了可用於添加的HttpModules編程方式PreApplicationStartMethod能力。

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

基本思想是創建一個派生的HttpApplication,它提供了在啓動時動態添加HttpModules的能力,然後每當在應用程序域內創建每個HttpApplication實例時,它就會將它們初始化爲管道。

4

對於.NET4及以上:

對於動態安裝一個HttpHandler的,你需要創建一個HTTP模塊封裝做到這一點。見答案:Any way to add HttpHandler programmatically in .NET?

動態地添加一個HTTP模塊:

安裝,包裝Microsoft.Web.Infrastructure

安裝,包裝WebActivator

[assembly: PreApplicationStartMethod(typeof(MyPreStartClass), "Start")] 

namespace ..... 
{ 
    public static class MyPreStartClass 
    { 
     public static void Start() 
     { 
      DynamicModuleUtility.RegisterModule(typeof(FooHttpModule)); 
     } 
    } 
}