我正在使用HttpModule打开一个跨越每个请求的会话,它可以很好地处理延迟加载和所有内容。
我担心的是,由于每个请求打开一个新会话(并将其存储在HttpContext.Current.Items中),它会为每个请求打开一个会话,甚至包括对.css文件和图像的请求。 我记得读过会话创建是一个非常轻松的操作(虽然不知道事务)但是无论如何似乎没有必要为.css文件的请求打开一个会话?
任何人都有这方面的想法,这是一个问题和/或我做了一些愚蠢的事情吗?
提前致谢
答案 0 :(得分:8)
仅在文件类型为.aspx或.ashx:
时才创建会话对象 switch (context.Request.CurrentExecutionFilePathExtension.ToLower())
{
case ".aspx":
case ".ashx":
context.Items[ContextKey] = CreateMySession();
break;
}
或将会话创建封装在属性getter中,并清理是否session != null