首页 > 解决方案 > asp.net 中的会话数据有时仅丢失

问题描述

我的 asp.net 应用程序最近托管在 azure 上,之后我们遇到了一个在会话中丢失数据的问题,这并不是一直发生而是随机发生,但是当它托管在 IIS 中时,这个问题没有发生。

我们有一个自定义实体列表,当用户上传我们保存到数据库中的文件时,我们有一个文件上传工具,同时将其保持在会话中,同时他们上传了“N”个应用程序成功处理并保存到数据库和会话中的文件。但是在页面加载时在同一生命周期中保存(此处为按钮单击事件)后,数据丢失。我检查/调试了这些事件之间没有更改会话数据的代码。

注意:此问题仅发生在服务器而不是本地主机中。

标签: c#asp.netazuresession

解决方案


如果它适用于 IIS,但不适用于 Azure。听起来像是会话超时问题(可能是全局服务器设置)。
我建议在您的web.config文件中明确添加会话超时。

<system.web>
 <sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>

InProc 模式,它将会话状态存储在 Web 服务器的内存中。这是默认设置。

cookieless=false,如果没有请求被视为无 cookie。

timeout,指定会话在被放弃之前可以空闲的分钟数。

在MSDN 库中阅读更多信息


推荐阅读