当前位置: 移动技术网 > IT编程>开发语言>.net > asp.net 删除项目文件/文件夹IIS重启,Session丢失问题

asp.net 删除项目文件/文件夹IIS重启,Session丢失问题

2017年12月12日  | 移动技术网IT编程  | 我要评论

网络红人程琳被杀了,小青菜,李言静

仔细一看,sso返回的ticket也不相同,才发现原来iis重启了,最后解决方案如下:

新建一个类继承ihttpmodule
复制代码 代码如下:

/// <summary>
/// stops the asp.net appdomain being restarted (which clears
/// session state, cache etc.) whenever a folder is deleted.
/// </summary>
public class stopappdomainrestartonfolderdeletemodule : ihttpmodule
{
private static bool disablefcns = false;
public void init(httpapplication context)
{
if (disablefcns) return;
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[] { });
disablefcns = true;
}
public void dispose() { }
}

随后在web.config中加入module配置
复制代码 代码如下:

<!--解决删除项目文件/文件夹引起的iis重启-->
<add name="stopappdomainrestartonfolderdelete" type="deployassistant.facade.web.stopappdomainrestartonfolderdeletemodule,deployassistant.facade"/>

这样每次再删除文件/文件夹appdomain都不会重启了,session也不会丢失了。世界也变得更美好了!

ps:web.config和bin文件夹下的改动依然会让web重启,这也是必须保留的!

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网