【问题标题】:ASP.NET loses session data when delete directory on WebApplicationsASP.NET 在 WebApplications 上删除目录时丢失会话数据
【发布时间】:2011-04-27 11:41:44
【问题描述】:

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

当我删除 web 应用程序根目录中的目录时,我的会话数据被清除。

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

注意:我不想为其他 IIS 实例服务的“子域”移动目录,也不想更改 sqlserver 的会话状态

提前感谢您的帮助。

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

我已在我的 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 session web-applications session-state


【解决方案1】:

很可能与这个有关:ASP.NET Deleting a directory results in application restart.

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

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

【讨论】:

    猜你喜欢
    • 2011-01-13
    • 1970-01-01
    • 2023-03-28
    • 2015-03-28
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 2010-12-19
    • 1970-01-01
    相关资源
    最近更新 更多