删除 WebApplications 上的目录时 ASP.NET 丢失 session 数据

标签 asp.net session web-applications session-state

我正在 asp.net mvc2 中创建一个 Web 应用程序,并且在一个有趣的情况下遇到了一个小问题,我认为这是 Web 应用程序的默认行为。 ( session 状态= inproc)

当我删除网络应用程序根目录中的目录时,我的 session 数据将被清除。

我读过一些寻求解决方案的人提出的问题,但对问题的了解不多,有人知道如何防止这种行为吗?

注意:我不想移动其他 IIS 实例提供的其他“子域”的目录,也不想更改 sqlserver 的 session 状态

预先感谢您的帮助。

谢谢大家,在该文章的链接上找到了解决方案。

我在我的 global.asax Application_Start 上添加了以下代码:

Dim p As System.Reflection.PropertyInfo = GetType(HttpRuntime).GetProperty("FileChangesMonitor", Reflection.BindingFlags.Public Or Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Static)
Dim o As Object = p.GetValue(Nothing, Nothing)
Dim f As System.Reflection.FieldInfo = o.GetType.GetField("_dirMonSubdirs", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.IgnoreCase)
Dim monitor As Object = f.GetValue(o)
Dim m As System.Reflection.MethodInfo = monitor.GetType.GetMethod("StopMonitoring", Reflection.BindingFlags.Instance Or Reflection.BindingFlags.NonPublic)
m.Invoke(monitor, New Object() {})

谢谢。

http://dotnetslackers.com/Community/blogs/haissam/archive/2008/11/12/disable-session-expiration-when-using-directory-delete.aspx

最佳答案

最有可能与此相关:ASP.NET Deleting a directory results in application restart.

这篇博文可能会为您澄清一些事情:Deleting Directory in ASP.net 2.0

我的建议是创建一个虚拟目录并操作该目录的内容(而不是接触应用程序目录本身)。

关于删除 WebApplications 上的目录时 ASP.NET 丢失 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5803493/

相关文章:

c# - 我应该如何在类和应用层之间传递数据?

php - 什么是 ASP.NET 等同于 PHP 中的 memcached?

asp.net - ASP.Net 使用什么 URL 重写器?

java - 如何配置 Tomcat 在调用 HttpServletResponse.encodeURL() 时不将 session ID 编码到 URL 中

session - Express.js req.session 变量不通过不同的路由存储 session 变量

asp.net - 有记录时从模型获取空值

session - SDN升级到4.2.0.BUILD-SNAPSHOT后如何获取当前的neo4j session ?

python - view_config 装饰器中的多个权限?

java - 覆盖 Play 1.2.4 中现有的 CRUD 模块

java - 两个struts2 webapps一起启动失败