asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
仔细一看,SSO返回的ticket也不相同,才发现原来IIS重启了,最后解决方案如下:
/// <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重启,这也是必须保留的!
相关推荐
-
ASP.NET中在一般处理程序中使用session的简单介绍
复制代码 代码如下: <%@ WebHandler Language="C#" Class="ChangePwd" %> using System; using System.Web; using System.Web.SessionState; public class ChangePwd : IHttpHandler, IReadOnlySessionState { public void ProcessRequest (HttpContext co
-
asp.net基于session实现购物车的方法
本文实例讲述了asp.net基于session实现购物车的方法.分享给大家供大家参考,具体如下: //加入购物车 protected void LinkButton2_Click(object sender, EventArgs e) { DataTable dt = null; //用户购买商品 如果 没有登录 则提示登录 if (Session["userName"] == null) { Common.MessageBox.ShowAndRedirectTo(this.Page,
-
ASP.NET 使用application与session对象写的简单聊天室程序
ASP.Net中有两个重要的对象,一个是application对象,一个是session对象. Application:记录应用程序参数的对象,该对象用于共享应用程序级信息. Session:记录浏览器端的变量对象,用来存储跨网页程序程序的变量或者对象. 说实话,写了快一年的asp.net,application对象还真没怎么用过.看了看书,根据这两个对象的特性写了一个简单的聊天室程序.真的是非常的简陋. 我的思路是,有两个页面Default页和ChatRoom页,页面布局如图: Default
-
ASP.NET 程序中删除文件夹导致session失效问题的解决办法分享
在Global中 Application_Start 添加 如: 复制代码 代码如下: void Application_Start(object sender, EventArgs e) { //在应用程序启动时运行的代码 System.Reflection.PropertyInfo p = typeof(System.Web.HttpRuntime).GetProperty("FileChangesMonitor", System.Reflect
-
实现Asp与Asp.Net共享Session的方法
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe> 在.ne
-
Asp.Net程序目录下文件夹或文件操作导致Session失效的解决方案
1.配置web.config <system.web> <sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="
-
ASP.NET ASHX中获得Session的方法
1-在 aspx和aspx.cs中,都是以Session["xxx"]="aaa"和aaa=Session["xxx"].ToString()进行读写. 而在ashx中,Session都要使用context.Session,读写方法是这样的: context.Session["xxx"]="aaa"和aaa=context.Session["xxx"].ToString() 2-在ash
-
asp.net 删除项目文件/文件夹IIS重启,Session丢失问题
仔细一看,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 Stop
-
ASP如何检测某文件夹是否存在,不存在则自动创建
直接给大家分享一下我们测试正常可以使用的代码,并且支持多级目录创建 代码一 Function CreateMultiFolder(ByVal CFolder) Dim objFSO, PhCreateFolder, CreateFolderArray, CreateFolder Dim i, ii, CreateFolderSub, PhCreateFolderSub, BlInfo BlInfo = False CreateFolder = CFolder On Error Resume Ne
-
如何用DOS命令删除顽固文件夹啊
一.常规解决办法: 1.注消或重启电脑,然后再试着删除. 2.进入"安全模式删除". 3.在纯DOS命令行下使用DEL,DELTREE和RD命令将其删除. 4.如果是文件夹中有比较多的子目录或文件而导致无法删除,可先删除该文件夹中的子目录和文件,再删除文件夹. 5.在任务管理器中结束Explorer.exe进程,然后在命令提示符窗口删除文件. 6.如果你有安装ACDSee,FlashFXP,Nero,Total这几个软件,可以尝试在这几个软件中删除文件夹. 二.高级解决方案: 1.磁盘
-
php 删除指定文件夹的实例讲解
1.前言 目标:php删除一个指定目录 所使用的的php函数:is_dir,opendir,readdir,scandir,rmdir,closedir,等等(注:其他文件操作函数也可以完成,这里只列举了本次使用的函数) 2.相关函数介绍 php文件操作的方法大致相同,已经在上一篇介绍过了,这里就不在重复介绍,这里就介绍一个新函数 rmdir 详情参考:http://www.w3school.com.cn/php/func_filesystem_rmdir.asp 3.代码构成 ** * [de
-
bat如何延时删除指定文件夹中的文件
本文介绍的是bat如何延时删除指定文件夹中的文件,下面话不多说了,有需要的来一起看看下面的详细内容. 一.bat延时 xp程序中通过ping 127.0.0.1 -n 20 来实现延时操作,ping本地地址20行. win7中通过timeout 20 来实现延时20秒. 二.删除指定文件 del /q d:\11\*.* 删除d:\11文件夹下的所有文件,并且不需要提示删除. /P 删除每一个文件之前提示确认. /F 强制删除只读文件. /S 从所有子目录删除指定文件. /Q 安静模式.删除全局
-
C++删除指定文件夹下N天及之前日志文件的方法
本文实例讲述了C++删除指定文件夹下N天及之前日志文件的方法.分享给大家供大家参考.具体如下: // 功能:删除nDays天及之前的日志文件 // @nDays: 0-不删除日志,3-删除3天及之前的日志(保留今天.昨天.前天的日志) ... void CRecordLog::ClearLog(UINT nDays) // 删除N天前的日志 { if (nDays > 0) { WIN32_FIND_DATA FindFileData; CString sAllFile = m_sLogFold
-
Java删除指定文件夹下的所有内容的方法(包括此文件夹)
如下所示: // 删除文件夹 private static void deleteDirectory(File file) { if (file.isFile()) {// 表示该文件不是文件夹 file.delete(); } else { // 首先得到当前的路径 String[] childFilePaths = file.list(); for (String childFilePath : childFilePaths) { File childFile = new File(file
-
Lua中实现递归删除一个文件夹
在使用 quick-cocos2d-x 做项目热更新的时候,我需要建立临时文件夹以保存下载的更新包.在更新完成后,我需要删除这些临时文件和文件夹. cocos2d-x 和 quick-cocos2d-x 都没有提供删除文件夹功能.我做了如下2个尝试: 1. 使用C++ 在 cocos2d-x 2.x 中的 AssetsManager包中提供了一个 CreateDirectory 方法.这个方法可以跨平台支持创建文件夹.在实际项目中运行没有问题. 复制代码 代码如下: bool AssetsMan
-
Lua脚本实现递归删除一个文件夹
复制代码 代码如下: rmdir in quick-cocos2d-x with lua. 在使用 quick-cocos2d-x 做项目热更新的时候,我需要建立临时文件夹以保存下载的更新包.在更新完成后,我需要删除这些临时文件和文件夹. cocos2d-x 和 quick-cocos2d-x 都没有提供删除文件夹功能.我做了如下2个尝试: 1. 使用C++ 在 cocos2d-x 2.x 中的 AssetsManager包中提供了一个 CreateDirectory 方法.这个方法可以跨平台支
-
Shell脚本实现递归删除空文件夹
有时我们需要递归删除空文件夹,网上找了一下,没有发现比较好的Shell脚本,于是自己动手写了一个 脚本 复制代码 代码如下: #!/bin/bash # author: 十年后的卢哥哥 # des: delete empty directories recursive deleteempty() { find ${1:-.} -mindepth 1 -maxdepth 1 -type d | while read -r dir do if [[ -z "$(find "
随机推荐
- Centos 7.3下SQL Server安装配置方法图文教程
- Linux系统下实现远程连接MySQL数据库的方法教程
- Android Studio配置Kotlin开发环境详细步骤
- JavaScript设计模式经典之工厂模式
- JS函数验证总结(方便js客户端输入验证)
- CI框架表单验证实例详解
- 用php获取远程图片并把它保存到本地的代码
- PHP CodeIgniter框架的工作原理研究
- Spring 事务隔离与事务传播的详解与对比
- 详解 Shell中的grep命令
- 详解vue中computed 和 watch的异同
- JavaScript 无缝上下左右滚动加定高定宽停顿效果(兼容ie/ff)
- Java实现九九乘法表的小例子
- 浅谈EasyUI中Treegrid节点的删除
- 详解a++和++a的区别
- JavaScript 基础函数_深入剖析变量和作用域
- 在javascript中执行任意html代码的方法示例解读
- 详解Java中的JDK、JRE、JVM
- Android TextView两端对齐解决办法
- NAS(synology 群晖)首次使用教程