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
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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.