0

我有一个会话,其中包含List(of String)我在Main.aspx. 在我Global.asax的中,我执行以下代码以在触发Sessiona 后检索值。Timer

  Private Sub Application_AcquireRequestState(sender As Object, e As EventArgs)
        If System.Web.HttpContext.Current.Session IsNot Nothing Then
            If Session("Products") IsNot Nothing Then
                Response.Write(Session("Products").ToString())
            End If
        End If
    End Sub

但是,Session("Products")返回 Null 并Sub退出。我想知道End Subin是否Main.aspx会释放 the Session,因此每当Timer发生火灾时,theSession都是空的。有什么想法吗?

4

1 回答 1

0

在您的 Main.vb 代码后面,除了要继承的任何内容之外,请务必继承该 System.Web.SessionState.IRequiresSessionState接口。

像这样的东西应该工作:

Public Class Main 
    Inherits System.Web.UI.Page, System.Web.SessionState.IRequireSessionState
' Your application code
End Class

这是一种奇怪的行为,因为 ASP.NET 网页应该已经处理了会话数据。通常,您继承IRequireSessionState通用处理程序 (.ashx),因为默认情况下它们不支持会话数据。

于 2013-04-10T17:35:45.767 回答