更改会话的默认值';s在asp.net mvc中的变量超时

本文关键字:net asp mvc 变量 超时 会话 默认值 | 更新日期: 2023-09-27 18:23:57

我有一个带有剃刀视图引擎的Asp.net Mvc应用程序,其中我使用了一个变量Session['user']:当用户登录应用程序Session['user'] = login并在注销时,该变量取值Null

问题是有一个短暂的超时和会话变量过期:如果我在自动登录应用程序Session['user'] =null后一分钟内什么都不做。

那么,在程序更改会话变量之前,我如何设置会话变量的超时不受限制呢?有什么建议吗?

更改会话的默认值';s在asp.net mvc中的变量超时

那么,在程序更改会话变量之前,我如何设置会话变量的超时不受限制呢?有什么建议吗?

不能将timeout值设置为无限制。

您可以使用web.config.中sessionState元素的timeout属性来增加超时值(以分钟为单位)


会话状态设置

默认情况下,ASP.NET使用cookie来标识哪些请求属于特定会话。如果cookie不可用,则可以通过在URL中添加会话标识符来跟踪会话。要禁用cookie,请设置sessionState cookieless="true".(120=分钟)

<sessionState mode="StateServer" cookieless="false" timeout="120"/>

查看此会话超时

不能将其分配给unlimited。您可以使用web.config 中Session state元素的超时属性来增加以分钟为单位的值

<sessionState timeout="30">
</sessionState>

默认情况下,会话超时值为20分钟。同样,在您的情况下,如果您使用表单身份验证,请检查身份验证超时值以及

<authentication mode="Forms">
   <forms loginUrl="logon.aspx" 
   protection="All" path="/" timeout="30" />
</authentication>  

这是会话的超时,而不是变量。在几分钟内将其设置为配置

<sessionState timeout="30" />

无法将会话超时设置为无限制
相反,将会话超时设置为一个高值
示例:

<configuration>
  <system.web>
    <sessionState mode="InProc" timeout="350" />
  </system.web>
</configuration>

我之前也遇到过类似的问题,这与会话超时值无关。因此,有时现在是超时期。此会话超时可能设置为20分钟或更长时间,但如果主机服务器或您的计算机在MEMORYVERY LOW。会话值随后被清除,用户有时将不得不再次登录。

内存不足有时是由于在数据库中存储图像二进制值而不是作为文件存储在服务器上并使用System.IO.File过程访问它们。因此,当您尝试提取一些记录时,它们在表上的IMAGES DATA也会被提取,这会导致性能显著降低,同时也会导致可用内存过多。

可能是您的计算机或主机内存不足(非存储空间)

希望这能有所帮助。