文件更改/上传后丢失会话

Uni*_*ack 2 .net c# asp.net-mvc session session-state

我目前在会话方面遇到一个奇怪的问题,我已经与MVC合作了很长一段时间,并且从未在以前的版本中使用过.目前首次使用MVC5制作新系统,一切都很好.会话正在设置没有问题,但是,如果我修改VS中的cshtml文件我的会话被杀死.

此外,我有一个文件上传功能,但是当你上传文件,然后导航到另一个页面时,会话再次消失.这在本地以及我们用于沙盒的Windows Server盒上工作.

有关会话的新版MVC有什么变化吗?我以前从未见过这个.我已经将它设置为使用进程内会话,从来没有通常需要更改任何东西,但我为了使用cookieless,使用cookie等选项.似乎没什么用.

如果有人有一个很棒的想法.

Wik*_*hla 6

有趣的是,您之前没有注意到这一点 - 一如既往更新网站内容时,IIS可能会重新编译声明性资源,从而导致重新启动应用程序池,从而有效地删除存储在内存中的所有会话数据.

解决方案是切换到其他持久会话存储,sql可能是最容易配置的.您只需要一个sql server,您可以在其中运行创建会话数据库的脚本:

http://support.microsoft.com/kb/317604

另一种选择是使用State Server:

http://msdn.microsoft.com/en-us/library/ms178586.aspx

状态服务器的性能通常优于SQl服务器,因为数据不会持久保存到磁盘上.但是,由于状态服务器是一个单独的进程,因此即使应用程序池重新启动,您的应用程序服务器也不会丢失会话.