برگزیده های پرشین تولز

!بعد از حذف دایرکتوری سشن اکسپایر میشه

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
سلام،

من از ASP.NET با VB.NET استفاده می کنم.

در قسمتی از برنامه یک دایرکتوری را با تمام محتویاتش از روی هاست و همچنین رکورد مربوطه در پایگاه داده حذف می کنم. ولی بعد از اینکه عملیات حذف انجام شد و روی دکمه ی دیگه ای کلیک می کنم، برمی گردم به صفحه ی لاگین که احتمالا به خاطر اکسپایر شدن سشن است. ولی دلیل این اتفاق رو نمی دونم.

اینم دستور:

PHP:
                If FileIO.FileSystem.DirectoryExists(Server.MapPath("~/images/") & Request.QueryString("sid")) Then
                    FileIO.FileSystem.DeleteDirectory(Server.MapPath("~/images/") & Request.QueryString("sid"), FileIO.DeleteDirectoryOption.DeleteAllContents)
                End If
 

aref1364

Registered User
تاریخ عضویت
23 جولای 2005
نوشته‌ها
395
لایک‌ها
1
کسی که جواب نداد، لااقل خودم بگم یکی دیگه هم یاد بگیره!

در فایل کد مرجع از سابروتین زیر استفاده کردم:

PHP:
     Disable session expiration on directory deletion 
        Public Sub FixAppDomainRestartWhenTouchingFiles() 

            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() {}) 

        End Sub

در فایل global.asax و در قسمت Application_Start اون رو فراخوانی کردم:


PHP:
FixAppDomainRestartWhenTouchingFiles()
 
بالا