我正在編寫一個使用IIS 7.5作爲Web服務器的ASP.NET MVC應用程序。 我想在任何請求開始時打開數據庫連接,並在請求結束時關閉此連接。Application_BeginRequest未觸發緩存結果?
因此,在Global.asax中我指定成員
Public Shared conn As OleDbConnection
在處理的Application_BeginRequest我開這樣的連接:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
Dim strConn As String = "myConnectionString..."
conn = New OleDbConnection(strConn)
conn.Open()
End Sub 'Application_BeginRequest
而在Application_EndRequest處理我關閉它:
Sub Application_EndRequest(ByVal sender As Object, ByVal e As EventArgs)
conn.Close()
conn.Dispose()
End Sub 'Application_EndRequest
然後,也許在HomeControl的Index()方法LER,我用在Global.asax提供的數據庫連接:
Dim _conn As OleDbConnection = MvcApplication.conn
'[then get or set data in the DB...]
我現在遇到了一件怪事:數據庫連接正常打開時,我完全從服務器重新加載頁面。當IIS從緩存中提交頁面時,數據庫連接不是開放的,並且出現錯誤(儘管看起來從我的報告工具中輸入了Application_BeginRequest處理程序)。有沒有辦法解決這個問題?我已經嘗試通過HTML元標記設置緩存控制,並利用以下Q & A提供:How to switch off caching for MVC requests but not for static files in IIS7? 問題仍然存在。誰能幫忙? 非常感謝, niewi
哇 - 感謝您的快速響應!這個竅門! – niewi