ASP.NET теряет данные сеанса при удалении каталога в веб-приложениях - PullRequest
2 голосов
/ 27 апреля 2011

Я создаю веб-приложение в asp.net mvc2, и у меня возникла небольшая проблема в интересной ситуации, которая, как я полагаю, является поведением по умолчанию для веб-приложений.(sessionstate = inproc)

Когда я удаляю каталог внутри корневого каталога веб-приложения, мои данные сеанса очищаются.

Я прочитал несколько вопросов от людей, спрашивающихрешение, но не много о проблеме, кто-нибудь знает, как предотвратить это поведение?

Примечание: Я не хочу перемещать каталог для другого "поддомен", обслуживаемого другим экземпляромIIS, и не хочу менять сессионное состояние для sqlserver

Заранее благодарен за вашу помощь.

СПАСИБО ПАРНИМ, НАШЛИ РЕШЕНИЕ ГДЕ НА ССЫЛКЕ ЭТОЙ СТАТЬИ.

Я добавил в свое приложение global.asax_Запустите следующий код:

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

1 Ответ

3 голосов
/ 27 апреля 2011

Скорее всего, это относится к: ASP.NET Удаление каталога приводит к перезапуску приложения.

В этом сообщении блога вам могут кое-что прояснить: Удаление каталога вASP.net 2.0

Я бы предложил создать виртуальный каталог и манипулировать содержимым этого каталога (вместо того, чтобы касаться самого каталога приложения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...