2013-02-01 65 views
0

我有一個asp.net 3.5 web應用程序,它會生成大量的審計相關數據。由於該數據與用戶不直接相關,因此我希望能夠異步地將其保存到MSSQL數據庫,並讓用戶無需等待即可進入下一頁。我使用Nhibernate作爲我的ORM。在asp.net webforms應用程序中異步保存審計數據到數據庫

我查看了PageAsyncTasks,並且據我所知他們只是允許您並行執行頁面操作,但所有操作仍然必須在頁面加載完成之前完成。有沒有一種替代的,相當輕量級的方法可以在不影響頁面加載的情況下繼續進行異步處理?是簡單地旋轉一個新的線程手動一個可接受的過程?

回答

0

您可以在您的解決方案中創建一個Web服務,並且當您的服務器端代碼完成並準備好將用戶移動到下一頁時,它可以調用您的Web服務來執行審覈,將其視爲火災和遺忘類型的事情。

不確定NHibernate會話是否是線程安全的,所以如果您創建一個新線程,請注意上下文。

理想情況下,您可以使用隊列和服務總線來安全和異步地處理這類事情,但涉及架構更改。

不知道這是否可能,但如果審計實際上明顯放慢了用戶界面,也許您最好改善該流程並保持同步。無論哪種方式,祝你好運。

相關問題