<system.web>
<sessionState mode="InProc" timeout="20" />
/* Etc... */
</system.web>
这里的超时时间被设定为20分钟(默认值)。而且,最大值似乎是525,600分钟,或者一年。
我可以在一周之后回到Facebook,仍然保持登录状态。这就是我希望我的应用程序所表现出来的方式。但根据这个答案,这可能会对性能产生不利影响,因为“您的非活动会话将保留在Web服务器内存中,这可能导致应用程序池重新启动,从而导致所有用户的所有会话都丢失。”
有人知道这种性能损失的详细信息吗?如果是真的,是否有更高效的方法使用户保持登录状态,例如Facebook等网站?
更新:
以下是我当前的web.config文件的相关部分。
<system.web>
<authentication mode="None" />
<sessionState mode="InProc" timeout="60" />
<compilation debug="true" targetFramework="4.6" />
<httpRuntime targetFramework="4.5.2" executionTimeout="240" maxRequestLength="20480" />
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
<customErrors mode="Off"></customErrors>
</system.web>
<system.webServer>
<modules>
<remove name="FormsAuthentication" />
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
<validation validateIntegratedModeConfiguration="false" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="20971520" />
</requestFiltering>
</security>
</system.webServer>
更新2:
看起来我错误地把两个问题(身份验证和会话状态)混淆了。我很抱歉没有正确地整理一些我在谷歌上搜索的问题。我的目标只是延长用户登录的时间。