2010-04-21 33 views
0

我正在開發一個帶有ASP.NET的Web服務,不是.asmx或WCF,它是自定義的,所以我正在使用Http類(上下文,請求,響應等)。會話被禁用。我正在處理我自己的處理程序和模塊。在ASP.NET中運行連接時保留一個對象

我想保持一個對象活着並且在連接存活的時候可以訪問。我的意思是,一個請求進入,我給它分配一個DbCommand,並且該連接將使用該命令,只要該連接結束,該對象應該被丟棄。我認爲,我可以將它添加到我的IPrincipal實現,然後當連接在模塊中進行身份驗證並且用戶檢索到時,我可以將該DbCommand添加到IPrincipal,以便我可以從任何地方想要在代碼中,並在模塊EndRequest事件後,我可以處置它,但我不知道是否有更好的方法來做到這一點。

您認爲如何?

歡呼聲

回答

0

它有點依賴於你的WCF配置。

我建議你閱讀這篇文章,因爲它可能會讓你對你想要的方向有所瞭解。 http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

您的客戶如何連接到服務?

你也可以在服務上使用單例模式(所以它和它的數據在'會話'中持續存在),並以每個用戶爲基礎將數據存儲在服務對象本身中。

+0

這不是WCF。客戶端連接一個簡單的WebRequest。我想避免的是爲此保留一個集合,因爲那樣我必須同步訪問並添加/刪除。例如,我只想將對象粘貼到HttpConext或HttpRequest,但我不知道在哪裏。乾杯。 – vtortola 2010-04-21 13:54:39

+0

啊,我誤解了這個問題!我道歉。 你最好的選擇(恕我直言)將是緩存然後。您不需要使用緩存中的集合來存儲對象,並可以依賴用戶特定的數據作爲檢索其對象的關鍵。 – Krisc 2010-04-21 14:01:18

+0

但隨着緩存將持續在連接之間,不是嗎?我想保留它只是爲了連接時間。 – vtortola 2010-04-21 14:17:42