是否有WebMethod的替代方案,以绕过回发,但访问会话

本文关键字:会话 访问 WebMethod 是否 方案 | 更新日期: 2023-09-27 18:16:03

所以我在努力提高我们的ASP的性能。. Net Webforms应用程序。

通常回发会尽力降低性能。我来学习WebMethod调用,我也设法得到工作。然而,对于我的特定场景,我需要访问会话,这显然是不可能在静态方法。

所以现在我的想法是写一个HttpModule来解决这个问题。然而,这似乎是一个相当大的努力,所以我想知道如果你知道一个开箱即用的解决方案,这个任务?

请注意,这只是一个关于某事是否已经存在的问题。编写模块将非常简单。我只是想避免重新发明轮子。

是否有WebMethod的替代方案,以绕过回发,但访问会话

如果您的问题是从静态成员访问会话对象,您可以使用HttpContext.Current.Session["..."]

[WebMethod(EnableSession = true)]
public static string Test()
{
    string s = HttpContext.Current.Session["Test"].ToString();
    return s;
}

关于HttpContext.Current Property的文档请参考这里;在这个属性里面还有Request, Response等等

@Martin Smellworse建议

无论在哪里设置会话,都需要EnableSessionState="ReadOnly"Async="true"在页面声明