Avatar billede muddi Praktikant
06. august 2001 - 23:33 Der er 8 kommentarer og
1 løsning

Luk siden mens database opdateres

Hvordan kan jeg udelukke brugere fra at se en side, hvis jeg er i gang med at opdatere databasen?

Det er jo ikke så fedt, hvis de prøver at se siden mens jeg opdaterer, for så kommer der en fejl. Desuden har jeg hørt at det ikke skulle være så sundt for et eller andet på serveren.

Det drejer sig om en access-database på en IIS 5

Er der nogen der kan finde på en IF-sætning, som lukker for adgang til siden under opdateringen??
Avatar billede burningice Nybegynder
06. august 2001 - 23:45 #1
uhm... jeg ved at der findes en lock commando til application http://www.activeserverpages.dk/iishelp/iis/htm/asp/intr84h7.htm

ang lock på din conn har jeg ikke kunne finde noget her http://www.activeserverpages.dk/iishelp/iis/htm/asp/iiwadata.htm :(
Avatar billede muddi Praktikant
06. august 2001 - 23:54 #2
hmm... det fatter jeg ikke så meget af :o(

Jeg havde forestillet mig noget i retning af
http://www.eksperten.dk/spm/168,
altså at en bruger sendes til en fejlside, hvis han forsøger at få adgang til sitet mens databasen opdateres...
Avatar billede tmceu Praktikant
06. august 2001 - 23:55 #3
Du tænker sikkert på application.lock - det skulle i teorien give dine brugere en fejlmeddelelse, hvis de prøver at tilgå din side mens den er låst, hvilket vel ikke er så fedt.

Jeg vil anbefale at du i stedet bruger en applikations variabel og så evt. laver en redirect mens opdateringen kører. Et lille eksempel:

1. På den side der opdaterer databasen:

Application(\"dbupdate\") = \"True\"

- kode til opdatering -

Application(\"dbupdate\") = \"False\"

2. På eks. default.asp

if Application(\"dbupdate\") = \"True\" then
response.redirect(\"db_not_active.asp\")
end if


Håber du forstår hvad jeg mener.
Avatar billede muddi Praktikant
06. august 2001 - 23:55 #4
Jeg er ret sikker på at jeg har læst noget om det herinde på eksperten engang, men jeg kan ikke finde det skide spm. Det er muligt at der er nogen andre der kan det...!
Avatar billede muddi Praktikant
06. august 2001 - 23:59 #5
tmceu >>> Jeg er bange for at jeg ikke helt forstår hvad du mener.
Databasen opdateres ikke fra en side, men med et FTP-program, og det kan tage op til 5 min. (det er ikke mig selv der skal gøre det).
Jeg har aldrig leget med Application.Lock.

ps. jeg skal lige sige at jeg ikke har administrativ adgang til serveren...
Avatar billede tmceu Praktikant
07. august 2001 - 00:08 #6
Hvis du bruger Application.Lock, bør brugere der kalder din side få en fejl, indtil du bruger Application.Unlock - det mener jeg ikke er godt nok.

Hvis du ikke har administrative rettigheder, er det lidt svært. Du kan evt. løse det ved at lave en sikkerhedsmæssig dårlig løsning, med et par \"skjulte\" sider som du kalder eks. før- og efter du laver ftp opdateringen. Det kunne eks. være noget i stil med:

startdbupdate.asp

Application(\"dbupdate\") = \"True\"

stopdbupdate.asp

Application(\"dbupdate\") = \"False\"

På eks. default.asp

if Application(\"dbupdate\") = \"True\" then
response.redirect(\"db_not_active.asp\")
end if

Dette er absolut en work-around og jeg ville ikke selv lave den, men det er en mulighed.
Avatar billede muddi Praktikant
07. august 2001 - 00:14 #7
Jeg tager dit svar, og så prøver jeg mig frem, men det kan godt være at jeg kommer og spørger dig om noget mere senere...
Avatar billede bredum Nybegynder
07. august 2001 - 00:19 #8
Avatar billede tmceu Praktikant
07. august 2001 - 00:41 #9
Takker og ok, jeg holder lige øje med spørgsmålet de næste par dage.
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