Avatar billede grafikeren Nybegynder
14. august 2003 - 19:49 Der er 9 kommentarer og
1 løsning

Underlig server-stabilitets fejl

Hej

Vi har gennem et stykke tid oplevet voldsomme stabilitetsproblemer ved brug af B-ONES servere. De er helt sikker på, at problemet ikke er deres.

Vi opretter nogle sessions når vores brugere logger ind. Når vi så senere opretter et forum (skriver i databasen vha. asp), får vi denne fejl:

"HTTP Error 507
507 Unexpected

The Web server encountered an unexpected error while communicating with the ASP service.

Please contact the server's administrator if this problem persists."

Vi har nu prøvet at smide forbind-koden ind i selve filerne har vi lidt mere succes. Dog fungere den ikke optimalt. Nu er det stort set altid første gang man prøver at oprette et forum (skrive til databasen), at den laver fejl. Prøver man igen, så virker det oftest. Men det er jo ikke optimalt??? Det må gøres noget...

Her er koden til vores opret forum.asp , hvor connect koden er sat ind. Den som oftest laver fejlen første gang man prøver.


<%
katid = request("katid")
bruger = session("Brugernavn")
titel = replace(request("titel"),"'","`")
indhold = replace(request("indhold"),"'","`")

dato = Year(Date)

Select Case Month(Date)
case 0,1,2,3,4,5,6,7,8,9
dato = dato & "0"&Month(Date)
case else
dato = dato & ""&Month(Date)
End Select

Select Case Day(Date)
case 0,1,2,3,4,5,6,7,8,9
dato = dato & "0"&Day(Date)
case else
dato = date & Day(Date)
End Select

Select Case Hour(Now)
case 0,1,2,3,4,5,6,7,8,9
dato = dato & "0"&Hour(Now)
case else
dato = dato & Hour(Now)
End Select

Select Case Minute(Now)
case 0,1,2,3,4,5,6,7,8,9
dato = dato & "0"&Minute(Now)
case else
dato = dato & Minute(Now)
End Select

Select Case Second(Now)
case 0,1,2,3,4,5,6,7,8,9
dato = dato &"0"&Second(Now)
case else
dato = dato & Second(Now)
End Select


ConnString ="Driver={MySQL};SERVER=localhost;DATABASE=dbname;uid=username;PASSWORD=passwrd"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString
set rst=server.CreateObject("ADODB.Recordset")

strSQL = "INSERT INTO tblForumer (KatId,Titel,Bruger,Dato,Besked) VALUES ('"&KatId&"','"&Titel&"','"&bruger&"','"&dato&"','"&indhold&"') "
rst.Open strSQL,Conn, 1 , 3, 1

strSQL2="Update tblMedlemmer Set Poster = Poster+1 Where Brugernavn = '"&bruger&"'"
rst.Open strSQL2,Conn, 1 , 3, 1

strPost="Update tblForumKategorier Set Indlag = Indlag+1, Seneste = '"&Dato&"' Where Id = '"&katId&"'"
rst.Open strPost,Conn, 1 , 3, 1

Conn.Close
Set Conn = Nothing


response.redirect("visForum.asp?id="&katid&"")
%>

Når den laver den fejl starte al server aktivitet forfra - så login sessions bliver slettet... :-(

Kan nogen finde fejlen???
Avatar billede thomas_yde Nybegynder
14. august 2003 - 20:10 #1
prøv istedet for at lave rst.Open så erstat det med Conn.Execute(strSQL)

Der bliver ikke oprettet noget resultset ved update,insert,delete
Det kan skabe en fejl
Avatar billede grafikeren Nybegynder
14. august 2003 - 20:14 #2
prøv at skriv konkret hvad jeg skal ændre i koden. Jeg kan ikke så meget asp, og programøren på opgaven er her ikke lige nu. :-)
Avatar billede thomas_yde Nybegynder
14. august 2003 - 20:20 #3
ConnString ="Driver={MySQL};SERVER=localhost;DATABASE=dbname;uid=username;PASSWORD=passwrd"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open ConnString
set rst=server.CreateObject("ADODB.Recordset")

strSQL = "INSERT INTO tblForumer (KatId,Titel,Bruger,Dato,Besked) VALUES ('"&KatId&"','"&Titel&"','"&bruger&"','"&dato&"','"&indhold&"') "
Conn.Execute(strSQL)

strSQL2="Update tblMedlemmer Set Poster = Poster+1 Where Brugernavn = '"&bruger&"'"
Conn.Execute(strSQL2)

strPost="Update tblForumKategorier Set Indlag = Indlag+1, Seneste = '"&Dato&"' Where Id = '"&katId&"'"
Conn.Execute(strPost)

Conn.Close
Set Conn = Nothing
Avatar billede grafikeren Nybegynder
14. august 2003 - 21:34 #4
Desværre. Stadig samme fejl! Det ser ud til, at det kun er første gang man sender til databasen. Næste gang og de følgende gange ser det ud til at virke.

Hvad kan det være?
Avatar billede hossein Nybegynder
14. august 2003 - 21:58 #5
hvilken datatype har feltet ID? hvis det er ikke tekst eller char så skal den ikke ha ' rundt om:
strPost="Update tblForumKategorier Set Indlag = Indlag+1, Seneste = '"&Dato&"' Where Id = "&katId&""
Avatar billede grafikeren Nybegynder
15. august 2003 - 00:08 #6
datatypen på ID er tinyint(4) med auto_increment.

Hvad skal den så gøre?
strPost=" ?
Avatar billede hossein Nybegynder
15. august 2003 - 22:41 #7
Prøv med denne her, Feltet seneste skal ha en dato datatype og i mysql skal man sætte ' rundt om, det andet er hvilke format felttet har, normalt i mySQL er YYYY-mm-dd så hvis det er, skal du så formatere den:
strPost="Update tblForumKategorier Set Indlag = Indlag+1, Seneste = '"&Dato&"' Where Id = "&katId&""
Avatar billede grafikeren Nybegynder
17. august 2003 - 20:02 #8
Den melder stadig fejl første gang man prøver... Ser ud til at virke alle andre gange.

Hjælp...
Avatar billede grafikeren Nybegynder
24. august 2003 - 19:41 #9
Kan det være noget med denne login/session del... Det er altid ved sessions den går galt. Jeg bruger flash til at skrive til asp. Her er scriptet:

<!---#include file="forbind.asp"--->
<%
Response.Expires = 60
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
%>
<%
Brugernavn = request("Brugernavn")
Kodeord    = request("Password")


sql = "select count(*) as Total from tblMedlemmer where Brugernavn = '"&Brugernavn&"' and Password = '"&Kodeord&"'"
set rs = forbind.execute(sql)

if rs("Total") = 1 then

session.Timeout = 20
session("Brugernavn") = Brugernavn
session("Password") = Kodeord
session("LoggetInd") = "Ja"


response.write("result=ok")
else
response.write("result=error")
end if
%>
Avatar billede grafikeren Nybegynder
30. august 2003 - 14:56 #10
Det var underligt, at ingen ved noget om dette...
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