我知道正确实现的SessionStateStoreProvider会在请求期间维护对会话数据的独占锁定。但是,考虑到多个请求可以同时到达(例如通过IFRAME),除了一个之外的所有请求都能够取得进展。所有其他请求都会阻塞一点,并减少在此期间可用的工作线程数。
如果ASP.NET早期对请求的会话ID“偷看”,它可以避免同时运行在同一会话上的请求。对于不想放弃使用IFRAME的页面,这将提高负载下的吞吐量。
这看似合理,可能是真的。
答案 0 :(得分:0)
根据第10章,改进Web服务性能,状态管理,MSFT p& p,2004年5月(link text):
“[...]如果将数据保持在会话状态,则一个客户端进行的Web服务调用由ASP.NET运行时序列化。来自同一客户端的两个并发请求在Web中的同一个线程上排队服务[...]“