为什么Asp.Net发布到Linux(mono)下会造成session丢失呢?

在工作中,我需要将用VS2010开发Asp.Net项目发布到Linux下,Asp.Net是.Framework 4.0.0,Linux是mono 3.10.0+jexus 5.6.3;

当我发布到IIS下,一切正常;

但是,当我发布到Linux下,就出问题了,可以登录进入系统,当你再对其他页面进行操作时,又会重新跳转到登录页面,这是为什么呢?

我在每个页面都加了权限,如果session不存在,就表示没有登录,就会自动跳转到登录页面,想了一下可能是session丢失了。

在Asp.Net中,如果你不在Web.config手动设置SessionState节点,默认就是InProc,就是所谓的进程内session,session是存在

Web服务器的进程中,我没有设置SessionState节点,默认就是InProc,看了jexus的config,发现httpd.processes=8,问题就是在这里了;

只要把改成httpd.processes=1就一切正常了,如果你觉得进程内session不够用,容易崩溃,可以在Web.config中添加SessionState节点,

将mode设置为StateServer或者SQLServer,具体怎么设置不说了,网上有很详细的资料。

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。