2009-10-19 59 views
1

我IIS 6在ASP.NET中,HTTPHandler可以跳過Global.asax.cs Application_BeginRequest處理程序嗎?

下運行我有一個處理一個特定的文件擴展名的請求一個HttpHandler(姑且稱之爲擴展包含.foo)。

Global.asax.cs中的我的Application_BeginRequest處理程序執行一個操作,我不會想要響應.foo請求發生。

我知道,在Application_BeginRequest處理程序中,我可以有條件地執行基於HttpContext.Current.Path(或類似的東西)的操作,但我不希望渾濁的Global.asax.cs文件的邏輯細節它不應該'不需要知道。

我寧願讓.foo文件的HttpHandler總是跳過Application_BeginRequest處理程序。

謝謝!

回答

3

我不認爲這是可能的。在IIS甚至知道哪個HTTPHandler要處理請求之前,Application_BeginRequest事件被觸發。

Global.asax構造有些過時了。你實質上得到的是和自定義的HttpModule一樣的東西......根據定義,所有的請求都必須通過所有註冊的模塊。既然如此,我認爲向BeginRequest處理程序添加邏輯以僅僅有條件地執行是很好的。但也許你真正想要做的是將這個邏輯轉移到一個自定義的HttpModule?或者多個模塊......那麼代碼和邏輯就不那麼「泥濘」了。

+0

謝謝布萊恩!這聽起來像我需要閱讀請求事件的順序。 :) – 2009-10-19 23:24:51

相關問題