Avatar billede konradsen Nybegynder
24. juni 2007 - 16:07 Der er 8 kommentarer og
1 løsning

Session_OnEnd script

Hejsa,

Jeg har nogle problemer med at få et script til at køre. Jeg har lavet dette kode i global.asa med det virker ikke helt.

Der bliver ikke oprettet nogen fil, hvis den ikke findes, og findens den bliver der ikke skrevet i den.

Nogen der kan hjælpe?


<script language="vbscript" runat="server">

Sub Application_OnStart
    Application("visitors") = 0
    Application("LogPath") = Server.Mappath("/data/logs/")
    Application("DBPath") = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.MapPath("/data/db/data.mdb")
End Sub

Sub Session_OnStart
    Session.Timeout = 1
    Session.LCID = 1030
    Application.Lock
    Application("visitors") = Application("visitors")+1
    Application.UnLock
End Sub

Sub Session_OnEnd

    Set fso = Server.CreateObject("Scripting.FileSystemObject")

    If not fso.FileExists(Application("LogPath")&"\logout.log") Then
        fso.CreateTextFile(Application("LogPath")&"\logout.log")
        Set File = fso.OpenTextFile(Application("LogPath")&"\logout.log", 2)
            File.WriteLine(vbcrlf &"--------------------------------------")
            File.WriteLine("LOGOUT.log created: "& Now())
            File.WriteLine("--------------------------------------"& vbcrlf)
        Set File = Nothing
    End if
   
    Set File = fso.OpenTextFile(Application("LogPath")&"\logout.log", 8)
   
    If not Session("username") = "" and Session("login") = "OK" then
        LoginData = Now() & " [ACTION: Logout OK]                                  [USER: "& Session("username") &"]"
    Else
        LoginData = Now() & " [ACTION: Logout OK]                                  [USER: UNKNOWN USER]"
    End if
   
    Application.Lock
    Application("visitors")=Application("visitors")-1
    Application.UnLock
End Sub

</script>
Avatar billede erikjacobsen Ekspert
24. juni 2007 - 16:13 #1
Avatar billede konradsen Nybegynder
24. juni 2007 - 16:18 #2
Der skulle umiddelbart ikke være nogle problemer. jeg bruger nemlig ikke Server.Mappath() i Session_OnEnd, men har allerede defineret det i Application("LogPath") i Sub Application_OnStart
Avatar billede erikjacobsen Ekspert
24. juni 2007 - 16:21 #3
Og den fortsætter med "Anonymous user" og "an event will be logged"  -  så kig i eventloggen.
Avatar billede konradsen Nybegynder
24. juni 2007 - 16:27 #4
Jeg kan ikke se noget i Event-loggen. Hverken i Application eller System.
Avatar billede fennec Nybegynder
25. juni 2007 - 08:25 #5
Har du prøvet at køre scriptet som almindelig kode?? Det er meget nemmere at debugge på den måde. Det kan jo være du f.eks ikke har skriverettighed.
Avatar billede erikjacobsen Ekspert
25. juni 2007 - 09:08 #6
Ok, så må vi jo prøve os frem.

1) Ingen grund til "\logout.log" - bare "logout.log", for du har alle skråstreger på plads allerede. Og de kan li'så godt være "/"-slagsen

2) Det undrer ikke mig, at du ikke får skrevet i filen, med teksten " [ACTION: Logout OK]  ...". Du mangler li'som at få gjort noget ved variablen LoginData.

3) Man kan med fordel lukke åbne filer med fx.:  File.Close
Avatar billede konradsen Nybegynder
26. juni 2007 - 19:54 #7
Ok, Nu har jeg testet lidt mere...
Hvis jeg køre scriptet i en seperat fil, så virker det perfekt.

Mit problem er så, at jeg tror ikke at den overhovedet køre de ting der står under: Session_OnEnd

Erikjacobsen:
1.: Dette står rigtigt. Har testet det i et script for sig selv.
2.: Tanketorsk fra min side. Har nu tilføjet en lije der skriver til tekstfilen.
3.: Har tilføjet dette også.

Hvad kan det så skyldes, at den ikke køre de kommandoer som står under: Session_OnEnd?
Avatar billede konradsen Nybegynder
26. juni 2007 - 20:11 #8
Hmm.. Fandt lige en brugbar artikel på MS KB !

http://support.microsoft.com/default.aspx?scid=kb;EN-US;934903

"FIX: The Session_OnEnd() event is not raised in ASP Web applications as expected after you install Windows Server 2003 with Service Pack 2"
Avatar billede konradsen Nybegynder
27. juni 2007 - 09:38 #9
Så funker det. Efter at have installeret denne hotfix, virker min Session_OnEnd !

Det er en fejl i Asp.dll under Windows Server 2003 SP2 ! Dette vil blive rettet i SP3, og kan man ikke vente til denne SP bliver udgivet, kan man gratis tage kontakt til Microsoft og få den tilsendt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester