因此,我正在努力提高ASP.Net Webforms应用程序的性能。
和往常一样,后援会尽最大努力减缓表现。我是来了解WebMethod调用的,我也设法做到了这一点。然而,对于我的特定场景,我需要访问Session,这在静态方法中显然是不可能的。
所以现在我的想法是编写一个HttpModule来解决这个问题。然而,这似乎是一项相当大的努力,所以我想知道你们中是否有人知道这项任务的开箱即用解决方案?
提醒你,这只是一个关于某些东西是否已经存在的问题。编写模块非常简单。我只是想避免重新发明轮子。
如果问题是从静态成员访问Session对象,则可以使用 HttpContext.Current.Session["..."]
HttpContext.Current.Session["..."]
[WebMethod(EnableSession = true)] public static string Test() { string s = HttpContext.Current.Session["Test"].ToString(); return s; }
参考 here 有关文档 HttpContext.Current Property ; 在该房产内,您还拥有 Request , Response 等等
HttpContext.Current Property
Request
Response
如@Martin Smelworse所建议
无论您在哪里设置会话,都需要 EnableSessionState="ReadOnly" 和 Async="true" 在页面声明中
EnableSessionState="ReadOnly"
Async="true"