Я установил тайм-аут на 30 минут в web.config, как показано ниже
<forms name=".FormsAuth" loginUrl="/Login.aspx" timeout="30" protection="All"
slidingExpiration="true" >
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="300" sqlCommandTimeout="300" sqlConnectionString="data
source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="30" />
На странице главной страницы.Я установил SeTtime на 30 минут, чтобы он мог перенаправить страницу входа.
Dim sessionExpiredUrl As String = Request.Url.GetLeftPart(UriPartial.Authority) & "/labor"
Dim script As New StringBuilder()
script.Append("function expireSession(){ " & vbLf)
script.Append(String.Format(" window.location = '{0}';" & vbLf, sessionExpiredUrl))
script.Append("} " & vbLf)
script.Append(String.Format("setTimeout('expireSession()', {0}); " & vbLf, Me.Session.Timeout * 60000))
' Convert minutes to milliseconds
Me.Page.ClientScript.RegisterClientScriptBlock(Me.[GetType](), "expirescript", script.ToString(), True)
Работает нормально.через 30 минут он перенаправляется на страницу входа.Но если я нажимаю на страницы, которые имеют объект сеанса в « 25 MINS ».Это исключение [NullReferenceException: Object reference not set to an instance of an object.]
.
Я не понимаю, почему объекты сеанса становятся «нулевыми» до 30 минут и как с этим справиться?
Редактировать: Ошибка здесь происходит.
mUser = CType(Session("user"), User)
Dim processTime As String = mUser.GetLastProcessTime(lastProcessTime) // Error happening here