我遇到了HttpContext.Current.Session的问题。 我尝试在我的应用程序上启用会话状态。 我做了一些事情:
<sessionState cookieless="UseCookies" regenerateExpiredSessionId="true" mode="InProc" timeout="20"/>
我也想使用cookies,所以我设置了cookieless =“UseCookies”。
之后我补充道:
<pages enableSessionState="true">
此页面部分未关闭,因为它包含一些名称空间:
<pages enableSessionState="true"> <namespaces> <add namespace="..."/> </namespaces> </pages>
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs) ' Fires when the session is started End Sub
和
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs) ' Fires when the session ends End Sub
public class MySession { public static void Add(string key, object value) { if (HttpContext.Current.Session != null && (HttpContext.Current.Session.Keys == null || (HttpContext.Current.Session.Keys != null && HttpContext.Current.Session[key] == null))) { HttpContext.Current.Session.Add(key, value); } } public static void Remove(string key) { ... } public static void Update(string key, object value) { ... } public static object GetValue(string key) { ... } }
这就是我在代码中所做的一切,是的 - 我的应用程序也使用了vb和c#。 因此,当我尝试使用MySession.Add(someKey,someValue)时,我总是得到一个HttpContext.Current.Session == null。
这是我第一次尝试在应用中开启会话,所以我需要帮助。 我正在寻找谷歌的任何解决方案,但他们要么不工作,要么他们不适合我。
有什么想法吗?
答案 0 :(得分:0)
我找到了解决问题的答案。
我必须使用类似Pipeline
的东西(在具有适当代码逻辑的适当位置)。
有关更多信息,请参见StackOverflow link或Microsoft文档上的direct link。