Avatar billede mrmox2 Nybegynder
31. marts 2013 - 08:53 Der er 9 kommentarer og
2 løsninger

*.asp hjemmeside - fejl opstået - siger databasefejl

hej - har brug for lidt hjælp til fejlsøgning

vi har et site som er kodet i asp og forbinder til mysql via 3.51 ODBC driver

for nogle dage siden begyndte den at henvise til dbfejl.asp som er fejlsiden hvis den i forbindelse med login ikke forbinder til databasen

fejlen er opstået uden at der er rettet i koden, og via phpmyadmin er der fin adgang til databasen

hvilke informationer kan jeg poste her for at få hjælp til at lokalisere fejlen. det forvirrer mig at det er sket uden at noget er ændret - og jeg har overtaget siden fra ham der har lavet den så jeg er ikke hjemme i alle hjørner af koden

mvh thomas
Avatar billede mrmox2 Nybegynder
31. marts 2013 - 08:58 #1
db.asp som kalder dbFejl.asp ser sådan ud:

Function dbOpen()
   
    ' Undersøger om der er fejl i database forbindelsen
    On Error Resume Next
   
    cSql_Database    = "xxxx"    ' Databasens navn
    cSql_Serverip    = "xxxx" ' Ip/navn hvorpå Databasen ligger
    cSql_Login    = "xxxx"             ' brugernavn til databasen
    cSql_Password    = "xxxx"            ' password til databasen
   
    Connection_string = "driver={MySQL ODBC 3.51 Driver};pwd="& cSql_Password &";uid="& cSql_Login &";database="& cSql_Database &";server="& cSql_Serverip
    Set Conn = Server.CreateObject("ADODB.Connection")
    Set RS = Server.CreateObject("ADODB.Recordset")
    Conn.Open Connection_string
   
    ' Hvis der var fejl i database forbindelsen så sendes brugeren til en fejl side
    If Err.Number > 0 Or Err.Number < 0 Then
        Response.redirect "dbFejl.asp"
    End If
   
End Function
Avatar billede keysersoze Guru
31. marts 2013 - 10:57 #2
Fjern din redirect og få udskrevet den egentlig fejl på skærmen eller kig i log hvis du har adgang til den.
Avatar billede mrmox2 Nybegynder
31. marts 2013 - 21:48 #3
hejsa - tak for det forslag
indlysende når det først står på skrift :-)

det giver fejl:

ADODB.Connection error '800a0e78'

Operation is not allowed when the object is closed.

/login.asp, line 32

og linje 32 lyder:
Set rs = Conn.Execute(Sql)

jeg søger lige lidt på det - hvis det umiddelbart giver mening for dig eller andre hører jeg gerne om det

linjerne op til linje 32 lyder

If Session("Login") and Session("BrugerID") & "X" <> "X" Then
    Response.redirect("/")
End If

Session.Timeout = 60
Login        = True
navn         = Replace(request.form("navn"), "'", "\'")
brugernavn    = Replace(request.form("brugernavn"), "'", "\'")
adgangskode  = lcase(Replace(request.form("adgangskode"), "'", "\'"))
adgangskode2 = lcase(Replace(request.form("adgangskode2"), "'", "\'"))

If Request("Login") = "True" Then
    %><script language="javascript" type="text/javascript" runat="server" src="sha256.js"></script><%
    ' Åbner en forbindelse til databasen
    dbOpen()
    Sql = "SELECT ID, Admin, AntalLogin, KID, GruppeID FROM Bruger Where brugernavn = '" & brugernavn & "' and adgangskode = '" & hex_sha256(adgangskode) & "' and Aktiv = '1'"
    Set rs = Conn.Execute(Sql)

mvh thomas
Avatar billede arne_v Ekspert
31. marts 2013 - 23:27 #4
Er Conn blevet lukket inden denne kode?
Avatar billede mrmox2 Nybegynder
01. april 2013 - 08:38 #5
nej - der sker stort set intet andet end den databasetest der er beskrevet i mit første indlæg og der er en conn open linje

derefter går den videre til login.asp som er kopieret ind i mit andet indlæg

så det er forbindelsen der ikke åbner efter hvad jeg kan se

support hos wannafind siger at de fint kan tilgå databasen internt og externt. og jeg kan tilgå den via phpmyadmin i deres kontrolpenel, men ikke fra anden server via php (altså uden ODBC driver) eller fra fx mysql workbench. jeg har spurgt dem om de har opgraderet en komponent inden for de sidste par uger hvor dette er opstået, men det har de ikke svaret på endnu - sikkert pga ferie. det er bare underligt at en bestemt kode fra den ene dag til den anden holder op med at virke

har prøvet med deres standard script men der får jeg en
VBScript compilation error "800a0401" i linje 9

det er deres script på http://knowledgebase.wannafind.dk/show/asp+classic+og+asp.net#243 men jeg går ud fra at det bare skyldes en fejl i tegnsæt - ikke noge jeg har haft tid til at lege med (jeg copy paster bare deres tekst ind i nodepad++)

ked af hvjs jeg væver lidt - asp er simpelthen ikke min stærke side. sætter stor pris på jeres hjælp.
Avatar billede arne_v Ekspert
01. april 2013 - 21:12 #6
Uden at se den relevante kode, saa er det mneget svaert at sige noget.
Avatar billede mrmox2 Nybegynder
02. april 2013 - 07:43 #7
hej

med relevant kode mener du så hele sitet?

den kode jeg har kopieret ind her er den kode er vist stort set den der afvikles helt frem til fejlen

jeg afventer deres support vågner efter påsken og giver mig svar på mine spørgsmål

jeg bliver mere og mere overbevist om at deres site ikke kan afvikle asp classic når det script de linker til ikke virker (og der iøvrigt er fejl i det - rod med variable)

så når jeg får fat i dem beder jeg dem finde et script der kan forbinde til en database og så ser jeg hvad det fortæller mig

mvh t
Avatar billede keysersoze Guru
02. april 2013 - 10:15 #8
I fejlen står at Conn er closed så det lyder som om at der er noget kode der ikke er helt styr på mere end at det er webhotellets skyld.

Hvis du vil hurtigt videre og du ikke let kan give den relevante kode så lav først en demo-side hvor du åbner connection, laver en forespørgsel og lukker connection - går det godt er alt i orden fra webhotellets side og så må du i gang med det tunge arbejde og så se hvor langt din egen kode egentlig når dels ved at udskrive nogle hjælpevariabler undervejs og dels udkommentere og herefter langsomt indkommentere kode til du finder fejlen (joy of ASP debugging).
Avatar billede mrmox2 Nybegynder
03. april 2013 - 00:47 #9
Hej - der er lidt nyt igen

har fundet ud af at de for to uger siden flyttede site til ny server så setup her helt nyt (asp.net 2.0 integrated) - og siden har det ikke virket

så jeg tror i denne omgang på at det er serveren der ikke kan eksekvere asp classic kode

wannafinds egen vejledning til at forbinde til database virker ikke (et standard script fra connectionstrings.com virker heller ikke) - deres tekniker arbejder på at lave et script der virker og hvis det ikke lykkes tror jeg vi prøver at flytte det til andet asp classic webhotel .. måske

jeg poster når jeg har fået mere info - lige et spørgsmål mere: når I snakker om relevant kode, er det så koden for hele sitet eller hvad præcis tænker I på, er ikke helt med :-)
jeg kan let copy-paste hvilken kode det skal være, men skal jo først vide hvad I ser som relevant kode
Avatar billede mrmox2 Nybegynder
04. april 2013 - 11:16 #10
så er der hul igennem igen
i connection string skulle {MySQL ODBC 3.51 Driver} ændres til {MySQL}
d var alt

ufatteligt at de flytter folk til ny server 13/3 og først 3 uger senere) finder frem til noget der virker

keysersoze - smider du ikke lige et svar - syns du skal have lidt for dit oplagte forslag om at fjerne redirect

mvh thomas
Avatar billede keysersoze Guru
05. april 2013 - 23:54 #11
svar
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