我有ASHX HTTPHandler實現IRequiresSessionState。當我調用這個處理程序,並在另一個窗口中調用同一應用程序的aspx頁面時,asx頁面不會開始處理,直到ashx頁面完成處理。即使從兩個不同的窗口調用相同的ashx頁面,也會顯示被調用的頁面先執行,然後再執行下一個頁面。HTTPHandler:IRequiresSessionState暫停執行頁面
當我不落實IRequiresSessionState,頁面異步加載,而無需等待其他網頁來完成。
這可能是最終用戶,想在多個窗口的工作誰嚴重的瓶頸。
會話具有用戶特定的數據。如果上述方法不起作用,則需要替代方式來存儲會話的用戶特定數據,這可以在HTTPHandler中使用。
其他信息: - 正在使用ASHX處理程序處理和發送文件,這需要會話內部。
再現行爲,看起來的確嚇人。通用處理程序中的一個簡單的'Thread.Sleep'會殺死所有其他請求。 – 2010-07-22 20:53:32
'IReadOnlySessionState'實際工作。 – 2010-07-22 20:59:27
@Darnin:如前所述,我有ASHX處理程序,所以Thread.Sleep不應該殺死所有請求,並且它不在我的代碼中。 上午正在修改會話數據,所以我需要IRequireSessionState。 另外我更感興趣的是爲什麼會發生這種情況。 – BigBoss 2010-07-22 22:11:52