2012-03-09 46 views
1

我有一個接受並返回XML的ASP.NET ASPX頁面。在ASP.NET調用中創建保留HTTP上下文的線程上下文

這個文件可以處理的一些請求類型涉及到一些與外部服務器並行通信然後聚合結果的任務。它通過創建新線程來執行此項工作並將HTTP上下文傳遞給每個線程來完成此操作。

事實證明,HTTP上下文不是線程安全的,並且在每個線程中總是以NULL值形式出現。緩存XSLT對象需要上下文,以便每次請求中的每個線程不需要每次都從磁盤讀取數據。高速緩存從未實際工作過。

我正在通過做不同的線程來完成這項工作,傳遞某種形式的上下文將工作或更改工作代碼以不同的方式緩存。

我不確定以何種方式解決這將是最合適的或最好的方法來做任何一個這些。任何輸入將不勝感激。

回答

0

您可以創建自己的上下文類型的實例,並在工作線程之間共享上下文。

我想,那麼你會想與特定會話共享上下文對象:

  • 儲存於一個關鍵的一個靜態的集合,是獨特的:你可以通過以下幾種方法之一來執行此每場會議。

  • 將它存儲在Session中。

  • 將其存儲在ASP.NET緩存中,並使用每個會話都唯一的鍵。

沒有關於您想要達到的目標的更多信息,很難指出什麼是最好的。