asp.net session丧失处理办法[网站编程]
本文“asp.net session丧失处理办法[网站编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
add name="stopappdomainrestartonfolderdelete"
type="mywebsite.stopappdomainrestartonfolderdeletemodule" />
需求阐明的是,"stopappdomainrestartonfolderdelete"为自定义的肆意名称,"mywebsite"为上述.cs文件中的命名空间,普通为项目名称."stopappdomainrestartonfolderdeletemodule"为上述.cs文件中的类名.
这就是它. 这将避免文件夹删除appdomain重新启动,但改正web.config和bin文件夹时仍会重新启动,这恰是我们想要的.
但是多删除几个文件就会发现session还是会过期,为什么会是这样的呢?目前还没搞清楚...于是在网上搜索就有了下面的这种方法
在 <system.web>下面配置session的保存方法为stateserver便可以了
<sessionstate mode="stateserver" statenetworktimeout="20"
stateconnectionstring="tcpip=127.0.0.1:42424" />
using system.reflection;
using system.web;
namespace mywebsite
{
/// <summary>
/// stops教程 the asp教程.net appdomain being restarted (which clears
/// session state, cache etc.) whenever a folder is deleted.
/// </summary>
public class stopappdomainrestartonfolderdeletemodule : ihttpmodule
{
public void init(httpapplication context)
{
propertyinfo p = typeof(httpruntime).getproperty("filechangesmonitor",
bindingflags.nonpublic | bindingflags.public | bindingflags.static);
object o = p.getvalue(null, null);
fieldinfo f = o.gettype().getfield("_dirmonsubdirs",
bindingflags.instance | bindingflags.nonpublic | bindingflags.ignorecase);
object monitor = f.getvalue(o);
methodinfo m = monitor.gettype().getmethod("stopmonitoring",
bindingflags.instance | bindingflags.nonpublic);
m.invoke(monitor, new object[] { });
}
public void dispose() { }
}
}
以上是“asp.net session丧失处理办法[网站编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |