Application_EndRequest未找到Session

JNF*_*JNF 9 asp.net session global-asax

我正在尝试按照ASP.NET OutputCache和Cookies中的建议在Global.asax.vb中的Application_EndRequest中设置一个cookie

我写了以下代码,cookie获得了ERROR价值.

为什么没有会话?

Sub Application_EndRequest(ByVal sender As Object, ByVal e As EventArgs)
    Dim context As HttpContext = HttpContext.Current
    If Not context.Session Is Nothing Then
        context.Response.Cookies("T").Value = context.Session("T")
    Else
        context.Response.Cookies("T").Value = "ERROR"
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

Yan*_*net 13

Application_EndRequest事件中不再存在会话.

Application_PostRequestHandlerExecute在应用程序的代码执行之后但在SessionState发布之前调用.

Sub Application_PostRequestHandlerExecute(ByVal sender As Object, ByVal e As EventArgs)
    Dim context As HttpContext = HttpContext.Current
    If Not context.Session Is Nothing Then
        context.Response.Cookies("T").Value = context.Session("T")
    Else
        context.Response.Cookies("T").Value = "ERROR"
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 它不是发布的会话,而是SessionState,它的控制权返回给服务器.在处理完请求(即"您的代码")之后,会针对每个请求触发此事件. (3认同)