02. september 2002 - 11:01Der er
13 kommentarer og 2 løsninger
Http 500 fejl
Jeg har en W2K server, med IIS5, der fungerer som min webserver. Jeg har nogle forskellige asp-sider, og de er alle testet.
Men ret ofte (ca. et par gange om ugen) går asp'en ned på serveren, og den viser http fejl 500 (på sider der normalt virker). Når det sker, kan jeg heller ikke forbindel til serveren, f.eks. via VNC, men loggen i W2K viser ingen fejl.
Er der nogen gode idéer til, hvorfor det sker? Kan det være overbelastning af resourcerne, eller kan min kode få det til at ske, også selvom siderne virker normalt?
Jeg har selv en mistanke om, at det måske er min forbindelse til databasen. Jeg bruger en .inc fil, med en funktion der forbinder til en db. Det virker fint, men jeg kan bagefter ikke lave en myConn.close, da den ikke mener den er åbnet?! Derimod kan jeg kun lave en set myConn = nothing, men jeg ved ikke om det er godt nok?!
Min server er en W2K server, med en P1000 og 512Mb ram. Den kommer jo egentlig ikke med nogen fejl i loggen, og den viser blot "http fejl 500". Så vidt jeg ved, skriver den denne fejl, når siden ikke er tilgængelig, som f.eks. når asp servicen er gået ned. Var det en fejl i koden, ville man se noget mere (jeg HAR slået "show friendly http errors" fra.
Det er lykkes mig at få følgende fejl frem: HTTP 500.100 Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Unknown /db.inc, line 23
db.inc er naturligvis min fil, der indeholder funktionen til at åbne en db. Men den virker jo normalt, så....
Du har ret, det ER den øverste jeg bruger. Men det virker jo de fleste gange, så hvorfor går det så galt? Når det går galt, er serveren også helt nede, og jeg kan ikke ftp til den, eller noget andet.
Hvad er den tekniske forskel på de to måder at connecte til db'en på?
OLEDB kald til Access 2000 strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\home\FtpBrugernavn\db\database.mdb;"
OLEDB kald til Access 97 strConnect = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=d:\home\FtpBrugernavn\db\database.mdb;"
ODBC til alle Access versioner. Er langsom og virker IKKE til servere der kører MDAC 2.6. strConnect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\home\FtpBrugernavn\db\database.mdb;"
ODBC. Simpel metode hvis databasen ligger i samme mappe som siden det kaldes fra. Ikke anbefalet. strConnect = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.Mappath("database.mdb") & ";"
Hvordan sætter jeg passwordet til db'en ind i følgende:
Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\home\bla\db\db.mdb;"
Forbindelsen til db'en bliver kaldt via en funktion i en .inc fil. Det gør dog, at når jeg vil rydde op efter mig selv, kan jeg ikke lave en "objConn.close", da den ikke ses som åbnet?! Jeg kan kun lave en "set objConn = nothing". Er det nok for at rydde pænt op?
Fandt selv ud af at sætte password ind: Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=d:\home\bla\db\db.mdb;Jet OLEDB:Database Password=xxx"
Men jeg vil stadig gerne høre, om "set objConn = nothing" er nok til at rydde op?
Jeg har prøvet med objConn.Close men det virker desværre ikke. Når jeg åbner da'en via en funktion i en .inc fil, kan jeg ikke lukke db'en på den måde. Når jeg kalder funktionen der lukker den, får jeg at vide at den ikke er åbnet og derfor ikke kan lukkes.
Er det generelt noget rod at forbinde til en db via en .inc fil?
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.