24. juni 2007 - 16:07Der 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
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
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
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?
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.
Synes godt om
Ny brugerNybegynder
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.