在工作中,我需要将用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,具体怎么设置不说了,网上有很详细的资料。
为什么Asp.Net发布到Linux(mono)下会造成session丢失呢?
原文:http://www.cnblogs.com/bens/p/4444557.html