我有一個MVC網絡應用程序與另一個應用程序(非網絡)共享一些共同的代碼。ASP.NET MVC - 一些線程不擊中HttpModule
這兩個應用程序必須做的事情之一是連接到特定的數據存儲。非Web應用程序運行多個線程,每個線程都有一組不同的連接參數,因此通用代碼將每個連接標記爲「線程靜態」。因此,這個連接也必須是我的ASP.NET MVC應用程序的線程靜態的。
在我的web應用程序中,我使用了HttpModule
。 context_BeginRequest
打開連接,begin_EndRequest
關閉連接。 (該連接在30秒後由數據存儲區自動關閉,因此無法無限期保持打開狀態)。
我的web應用程序似乎工作得非常好,除了它偶爾會拋出一個錯誤,說它無法使用連接。
我通過添加日誌記錄調查了這一點。我記錄了每個線程,因爲它碰到了context_BeginRequest
,context_EndRequest
以及何時拋出異常。我發現這個錯誤是由我的應用程序中的一個線程拋出的,它從未打過HttpModule's context_BeginRequest
。因爲它沒有打到,沒有連接被打開。
我的理解是,該線程應該已經打到HttpModule
- 那爲什麼不呢?
如果我不能保證這種行爲,那麼你會建議什麼方法?
這不是答案。它應該是一個評論。 – ChrisF