c# - asp.net 中的会话数据有时仅丢失
问题描述
我的 asp.net 应用程序最近托管在 azure 上,之后我们遇到了一个在会话中丢失数据的问题,这并不是一直发生而是随机发生,但是当它托管在 IIS 中时,这个问题没有发生。
我们有一个自定义实体列表,当用户上传我们保存到数据库中的文件时,我们有一个文件上传工具,同时将其保持在会话中,同时他们上传了“N”个应用程序成功处理并保存到数据库和会话中的文件。但是在页面加载时在同一生命周期中保存(此处为按钮单击事件)后,数据丢失。我检查/调试了这些事件之间没有更改会话数据的代码。
注意:此问题仅发生在服务器而不是本地主机中。
解决方案
如果它适用于 IIS,但不适用于 Azure。听起来像是会话超时问题(可能是全局服务器设置)。
我建议在您的web.config
文件中明确添加会话超时。
<system.web>
<sessionState mode="InProc" cookieless="false" timeout="80" />
</system.web>
InProc 模式,它将会话状态存储在 Web 服务器的内存中。这是默认设置。
cookieless=false,如果没有请求被视为无 cookie。
timeout,指定会话在被放弃之前可以空闲的分钟数。
在MSDN 库中阅读更多信息
推荐阅读
- typo3 - TYPO3 11 felogin 与打字稿
- r - 如何向现有数据添加行/条目
- c++ - 如何从指向该函数的指针调用函数?
- python - 使用命令行参数从 Python 运行 C 可执行文件
- php - 尝试使用 PHP 和 SQL 更新数据库但收到错误
- reactjs - 当你有掩码和 unform 时如何更改 react-input-mask 值?
- java - 使用 Jackson ObjectMapper 将 JSON 反序列化为 Java POJO 时如何将日期字符串正确解析为 java.util.Date
- python - 获取数组中从右上角到左下角的所有对角线
- python - 意外的 UserDict 行为
- excel - 为什么我的 IF(AND) 嵌套会产生不正确的结果?