2010-08-09 21 views
1

可能是我此刻的混亂和不知道在這一點或場景應該使用的Application_Error(Global.asax中)或Context_Error(當我們執行HTTP模塊)的Application_Error VS Context_Error在asp.net

像。 ..

public void Init(System.Web.HttpApplication context) 

{ context.Error + =新的EventHandler(Context_Error); }

由於

回答

0

在任何情況下或者是一個不可能的方法和這些選項不是100%明確。有不止一種方式來給貓塗一層皮,而且有不同的選擇可以讓你在設計你的應用時有更大的自由。

如果您的邏輯是特定於您的應用程序的,並且它的工作方式相對本地化,那麼您最好將它放在global.asax中。由於應用程序的其他部分發生更改,因此更可能需要更改,而不是整個過程的整體改進。

當你想在多個應用程序中完成錯誤的邏輯,那麼你最好把它放在模塊中。由於整個過程發生變化,而不是特定於該應用程序,因此更可能需要更改。

如果您希望行爲在沒有重新編譯的情況下是「可插入的」,那麼您需要在模塊中執行此操作。但是,還有其他方法可以在不重新編譯(配置設置)的情況下打開或關閉功能,因此即使這樣也不會被剪切乾燥。

+0

嗨喬恩, 感謝您的回答。我正在修改應用程序生成的404 httpexceptions,以更多的SEO方式處理。默認的customErrors是302重定向的第一個不會切斷我們的SEO團隊的目的:) :)。所以想到擴展Application_Error,或者可能只是寫一個自定義的HttpErrorModule。我猜,在這個小事情上,Application_Error就足夠了。 感謝您的快速回復隊友。 – DotNetInfo 2010-08-09 01:30:40

+0

這又是一回事!有幾種不同的方法可用,但最簡單的方法是在IIS中使用404的情況下設置要執行的ASPX頁面(不會重定向到,這兩個選項都可用於最新版本的IIS)。 – 2010-08-09 02:01:05

+0

還有一件事。如果我創建一個新的HttpErroModule並添加它,那麼應該執行Global.asax文件中的Application_Error。我不認爲它應該,但從你的專業知識再次確認,將不勝感激。 – DotNetInfo 2010-08-09 02:44:16

相關問題