20. juni 2002 - 20:43Der er
18 kommentarer og 1 løsning
min global.asa virker ikke
Hejsa
jeg har nu bakset med et problem længe, som jeg håber folk kan hjælpe med. Jeg ønsker at fjerne folk fra min database når deres session timer ud, men det virker åbenbart ikke felt.
min folder struktur er følgende hovedmappe |--wwwroot <--global.asa ligger her |--db <--databasen ligger her
min global.asa ser således ud:
<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnEnd strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../db/database.mdb") Set cn = Server.CreateObject("ADODB.Connection")
cn.Open strDSN cn.Execute("DELETE * FROM tabel WHERE Navn = '" & Session("Navn") & "'") cn.Close
Set cn = Nothing End Sub </SCRIPT>
det underlige er, at det virker, hvis jeg ændrer det til Session_OnStart istedet, så for mig giver det ingen mening...
Brug af AI afslører de svagheder, virksomheder allerede har opbygget gennem års cloud-transformation, nye SaaS-løsninger og fragmenterede sikkerhedssystemer.
Det er en udbredt holdning i mange udenlandske forums, at man ikke kan anvende Access databaser i Session_OnEnd. Jeg har lavet min egen test efter at have læst en masse om det og min konklusion er, at det ikke virker med Access, mens der eks. aldrig er problemer med MySQL og SQL Server.
P.S. Hver gang jeg skriver dette, kommer der en eller anden og fortæller at det virker hos ham/hende, men min konklusion er at det ikke virker - eller i hvert tilfælde kun under meget bestemte forhold.
Jeg vil give tmceu at det god kan være et problemmer med Access, et gæt kunne være at Access ikke er en server som MySQL og SQL Server er, men det er kun gætverk og jeg kan ikke lige finde bevis for det.
Jeg karn dog finde mange steder hvor de skriver at server.Mappath ikke virker i OnEnd functionen.
Der er et generelt problem med Session_OnEnd i IIS4 som efter sigende skulle være løst i IIS5 og jeg har endnu ikke oplevet eller hørt, at det ikke skulle være løst.
Problemet er, at Session_OnEnd kun kører i 95-97% af de tilfælde hvor sessionen timer ud, dvs. når der ikke laves en eksplicit end af en session med Session.Abandon.
Uanset hvilken database man anvender, vil man selvfølgelig være underlagt denne begrænsning (bug) på IIS4, men ellers virker det 100% med MySQL og SQL Server og sandsynligvis også med øvrige rigtige database servere som eks. Oracle.
Den eneste årsag jeg har kunnet finde på er som eagleeye også nævner, at Access ikke er en server applikation, men en fil-baseret database. Men som sagt findes der nogle som har held med at anvende Access.
Nej ikke lige nu, det virkede ellers i formiddags, prøv evt lidt senere. Det var også for at vise at det er et kendt problem med server.mappath i Session_OnEnd funcionen.
jo... men jeg kan slet ikke få den til at virke... jeg har prøvet i næsten en måned nu, for at får det til at fungere, at man kan se hvem der er online, ligesom ved: http://www.bann.co.uk/asp/global/connections.asp , men kan stadig ikke få det til at fungere... er ved at blive sindssyg over det, fordi det er det eneste der mangler på mit site...
Well - det var en god hjælp - nu ved jeg da i det mindste hvad jeg skal gøre for at komme videre - desværre konvertere hele DB'en samt scripts til MySQL - sQ jeg nok have gjort fra starten :o)
tmceu: naeh - tror du har ret - well, hvis jeg havde råd blev det MSSQL istedet - stored procedures tiltaler mig en del *s*
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.