Jag har tidigare postat en fråga om en länk som ibland inte fungerar, dock fungerade alla de 30 personer från wF som klickade på länken... Men fortfarande blir det felmeddelanden som kommer ibland, väldigt sporadiskt.
Men jag förlorar flera hundra användare /besökare på detta och det är inte så bra!
Jag har nu lyckats lokalisera ett fel, som jag inte vet om det har med detta att göra, men som i alla fall ger mig ett felmeddelande. Mina webbplatser har samma mönster:
1. ladda sökvägen i global.asa till en sessionsvariabel
2. Använd denna sökvägen i "open.asp"
Microsoft JET Database Engine error '80004005'
'd:\www\tadmin723\tuser1331\Data\databas\cittaslow\db1.mdb' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
/admin/open.asp, line 5
Detta är felmeddelandet första gången man kommer till hemsidan!
SUB Session_OnStart
[b]' ## ASSIGN SESSION A VALUE!! 2005-11-24
session("databasePath") = "d:\www\tadmin723\tuser1331\Data\databas\cittaslow\db1.mdb"[/b]
' ## SWEDISH DATES
session.LCID = 1053
'## SELECT SERVER
IF Request.ServerVariables("SERVER_NAME") = "localhost" THEN
' ## LOCALHOST
session("databasePath") = Server.MapPath("\Databas\db1.mdb")
ELSEIF Request.ServerVariables("SERVER_NAME") = "192.168.1.44" THEN
' ## LOCAL WEBSERVER
' session("databasePath") = Server.MapPath("\Databas\db1.mdb")
' session("databasePath") = Server.MapPath("..\Data\Databas\db1.mdb")
ELSE
' ## WEBSERVER
' ## CAN'T HAVE Server.MapPath IN global.asa!!
session("databasePath") = "d:\www\tadmin723\tuser1331\Data\databas\cittaslow\db1.mdb"
END IF
END SUB
Jag har en teori och jag modifierar global.asa och lägger in session-tilldelningen i början och ser om det har någon positiv inverkan!
Det var tråkigt nog ingen skillnad... Rad 5 i filen open.asp:
<%
'## OPEN THE DATABASE
Set Conn = Server.CreateObject("ADODB.Connection")
[b]Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & session("databasePath")[/b]
Det konstiga med detta felet är att samtliga mina webbplatser bygger på denna variant sedan lång tid tillbaka. Det fungerar typ 98% av alla gångerna... men inte alltid!!
På en annan sajt har jag nu inte haft några problem på över en vecka, och där var mycket problem tidigare. Jag har inte ändrat nåt... i koden... medvetet... vad jag vet...
Hmm, enda gången jag har haft problem med exakt samma sak var när jag körde en annan variant på ConnectionString... Av erfaernhet så brukar dock Global.asa krångla en hel del, det skulle inte kunna vara det som är problemet. När man t.ex. stänger webbläsaren så triggas in alltid Session_OnEnd.
Hur många besökare har du aktivt samtidigt? Det skulle inte kunna vara så att det är Access-databasen som strular. Enda jag vet är att Access inte är anpassat för allt för många användare samtidigt. Har bara hört att det ska vara på det sättet så någon annan kanske kan ge mer detaljerad information? :)
Ser också att jag skriver in lite mer i min ConnectionString...
Jag har bara gjort sådär på en sida och det var för att personen före mig gjorde så :) Men varför har du så många olika sökstränga till db1.mdb? För mig fungerar det utmärk med en enda och jag kan visst ha Server.MapPath() i Global.asa...
"Varför lägga databas-sökvägen i Session? Är det inte samma databas för alla användarna?"
- Jo, samma sökväg för alla, men open.asp är inte enda filen som använder söksträngen. Även sidor med poageing använder söksträngen och om man är slööööö... som jag är så¨kan man alltså kopiera en hel webbplats, inklusive pageing, dokumentation och annat, från en webb till en annan med bibehållen funktionallitet.
Very handy, if you ask me! :-)
"För mig fungerar det utmärk med en enda och jag kan visst ha Server.MapPath() i Global.asa..."
- Nej, det fungerar inte om besökaren kommer till webbplatsen till någon sida inne i webbplatsen. Det hag vi gått igenom tidigare så det VET jag! :-)
Men visst, om dina besökare ALLTID kommer till förstasidan, så fungerar det.
***
Jag vet att det finns begränsningar i Access på max antalet användare, men detta har inte med det att göra. (Förutsätter för övrigt att flera pers klickar på en länk *samtidigt* och man måste ha FET-MYCKET trafik för att det ska hända.)
Ska testa din sökväg där, om det gör någon skillnad. (However, I truelly doubt it...)
- Nej, det fungerar inte om besökaren kommer till webbplatsen till någon sida inne i webbplatsen. Det hag vi gått igenom tidigare så det VET jag! :-)
Men visst, om dina besökare ALLTID kommer till förstasidan, så fungerar det.
Skummt att det fungerar för mig då? :moose Kan det ha att göra med att jag har \ istället för / i min Server.MapPath("\") Skriver du "\" i Server.MapPath() så letar den från rooten av din webbplats. Så varför skulle inte det fungera??
Testade nyss själv att gå till en underkatalog på min webbplats. Det kvittar hur djupt jag än går så fungerar det fortfarande :) Har du äkta ASP eller använder du SUNs version som t.ex. B-One gör?? Hette tidigare Chili ASP tror jag...
- Jo, samma sökväg för alla, men open.asp är inte enda filen som använder söksträngen. Även sidor med poageing använder söksträngen och om man är slööööö... som jag är så¨kan man alltså kopiera en hel webbplats, inklusive pageing, dokumentation och annat, från en webb till en annan med bibehållen funktionallitet.
Very handy, if you ask me! :-)
Jo, men saker som man lägger i Session är ju saker som man vill knyta till den specifika användaren. Saker som man knyter till själva webbplatsen lägger man i stället, med fördel, i en Application-variablerna (i global.asa) eller i en global variabel include-fil. Om man har 1000 samtidiga användare så är det onödigt att lagra samma connectionstring i 1000 sessions-variabler i stället för i 1 application-variabel. Det var i och för sig inte det som var problemet här, utan mer ett generellt tips.
Eclipse skrev:
- Nej, det fungerar inte om besökaren kommer till webbplatsen till någon sida inne i webbplatsen. Det hag vi gått igenom tidigare så det VET jag! :-)
Men visst, om dina besökare ALLTID kommer till förstasidan, så fungerar det.
Om man har en mappath som inleds med "/" (i mappath ska man alltid ange sökvägen med "/", inte med "\") så utgår frågan från roten, och då spelar det ingen roll vilken sida de går in på.
Hmm, smart emission. Men hur visste du vilket håll snedstrecken skall stå på? Jag ser båda varianterna på massa olika ställen så man blir ju helt klart förvirrad...
Dessutom, visst att det är onödigt att spara samma data 1000 gånger om det är 1000 besökare men om man kollar prestandan så påverkas väl inte denna så mycket av det? En Session-variabel sparas väl på klientens dator som en kaka o cache-minnet?
Äh, får se till att byta nu då från Session till något annat... :P
Om man har en mappath som inleds med "/" (i mappath ska man alltid ange sökvägen med "/", inte med "\") så utgår frågan från roten, och då spelar det ingen roll vilken sida de går in på.
Jag/vi avhandlade detta ämne för 2 år och tre månader sedan här på wF.
Att det skulle vara skillnad på vilket håll snedsträcket skulle vara åt var aldrig ett ämne för diskussion då. Får be att återkomma efter lite mer grundligare research!
***
Emission!
Givetvis lägger man denna typen av data som applicationvariabel och det är jag en flitig användare av i alla fall utom just detta!
Men... tack vara denna tråden kanske jag byter och lägger sökvägen som applicationvariabel.
***
Jag avnänder "vanlig ASP" och ingen obskyr tredjepart som fungerar för det mesta men inte alltid! :-)
(Det är säkert inget fel på tredjepart, men jag använder inte det. Hade jag gjot det hade jag skrivit det...!)
***
- Ska se över lutningen på mina snedsträck...! :-)
Om man har en mappath som inleds med "/" (i mappath ska man alltid ange sökvägen med "/", inte med "\") så utgår frågan från roten, och då spelar det ingen roll vilken sida de går in på.
Jag/vi avhandlade detta ämne för 2 år och tre månader sedan här på wF.
Att det skulle vara skillnad på vilket håll snedsträcket skulle vara åt var aldrig ett ämne för diskussion då. Får be att återkomma efter lite mer grundligare research!
MapPath är snäll och ersätter "\" med "/", men eftersom det handlar om att översätta en virtuell sökväg till en abslut sökväg så tycker jag att man ska hålla på att använda "/". Felet du upplever har dock varken med Sessions-prylen eller snedstrecken att göra, utan måste bero på något annat strul med din databasfil (sökvägen i felmeddelandet är väl rätt? Testa genom att skriva ut den mha MapPath på en vanlig sida)
lilja skrev:
En Session-variabel sparas väl på klientens dator som en kaka o cache-minnet?
Ööööhhh... Jag använder ju inte server.MapPath...!
Sökvägen till databasen är skriven i klartext.
Det blir ett felmeddelande första gången men det fungerar vid en reload! :-)
Webbplatserna fungerar i typ 98-99% av fallen, det är därför det har tagit så lång tid för mig att över huvud taget lokalisera ett problem!
Jag ska räkna ut antal % av förlorad trafik. I reda antal vet jag att det är 100-200 förlorade surfare/besökare i veckan... och det är lite mycket... tycker jag!
272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e