آژانس هواپیماییexchanging

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

شروع موضوع توسط aref1364 ‏5 ژوئن 2010 در انجمن asp , ASP.NET

  1. aref1364

    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
     
  2. aref1364

    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(NothingNothing

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