我有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