2011-05-26 64 views
1

我想配置一個ASP.NET MVC應用程序,它將使用兩個MvcApplication派生類之一,具體取決於應用程序運行的環境。是否可以使用另一個程序集中的Global.asax?

包含所有生產代碼,視圖等的主要Web應用程序具有從global.asax中的MvcApplication派生的標準類。我想要的是在Web測試期間使用另一個類(基於Selenium的瀏覽器測試)。我想要從web應用程序中使用的所有資源,代碼,視圖等被使用,除了用於global.axax/MvcApplication類。

測試網站需要不同的Global.asax,這樣我可以設置不同的容器,並配置一些其他的設置(例如,記錄,跟蹤等),這些測試過程中有幫助的,但沒有意義的生產。

有誰知道這是否可能,如果是的話,該怎麼做?

感謝, 埃裏克

回答

2

我認爲你可以在兩個差班一個用於調試和其他生產實現了相同的接口移動你的引導代碼:IBootstrapProvider,並在全球ASAX初始化其中之一取決於Web配置中的參數! 此解決方案適用於我!

我明白你的問題嗎?

希望能幫助你 馬爾科

+0

我希望避免有邏輯在測試我的版本的應用程序,但是這可能是最好的一段路要走。謝謝! – 2011-05-27 00:41:31

1

如果您在Global.asax中有該代碼是在1個地方(說的Application_Start),那麼馬可提供的解決方案是可行的。但是如果你在其他方法中有代碼塊(比如Application_BeginRequest,Application_EndRequest),這個代碼將很難被移出。

在這種情況下,我會建議使用HttpModule。在HttpModule中,您可以訂閱與global.asax中相同的事件,但它們位於不同的文件中。打開HttpModule只是註釋掉web.config中的行。關於如何實現和配置HttpModule,請參閱http://support.microsoft.com/kb/307996。如果您需要的HttpModule在IIS 7上運行,你需要在web.config中不同的設置:http://pro-thoughts.blogspot.com/2008/04/using-httpmodules-and-httphandlers.html

+0

謝謝 - 我將嘗試多個類。我希望避免生產應用程序的任何更改,但看起來不錯。 – 2011-05-27 00:42:11

相關問題