Avatar billede kotelet Nybegynder
14. maj 2002 - 16:17 Der er 7 kommentarer og
2 løsninger

Server Aplication Error

Hej!

Jeg arbejder for tiden på et nyt site, men det sker ofte at jeg ikke kan se siden online da der opstår en fejl på serveren.

Fejlen er som sagt: Server Aplication Error.

Jeg ved ikke hvad jeg gør galt. Jeg kan sige at jeg har mange databaseforbindelser på den side, men hvordan sikrer jeg mig at fejlen ikke opstår?

/Kotelet
Avatar billede tmceu Praktikant
14. maj 2002 - 16:23 #1
Jeg antager at du kører IIS ? Kører databasen (SQL Server?) på samme server ? Det kan være et resourceproblem mellem IIS og SQL Server, som tager al den memory den kan. Men det ville være rart med lidt flere detaljer...
Avatar billede kotelet Nybegynder
14. maj 2002 - 16:36 #2
Jeg har en idé om hvad det er:

Jeg har et script der ser således ud:


--------- MAIN.ASP --------------

SELECT CASE Request.Querystring("a")
CASE 1    'home
%><!-- #include virtual="/include/home.asp" --><%
CASE 2    'search
%><!-- #include virtual="/include/search.asp" --><%
CASE 3    'products
%><!-- #include virtual="/include/products.asp" --><%
CASE ELSE
END SELECT

-------------------------------

På hver af de tre filer som includes, er der scripts der opretter forbindelse til databasen OG lukker dem igen. Jeg har hidtil antaget at forbindelsen ikke blev oprettet, fordi siderne kun ville blive includet hvis CASE var 1,2 eller 3. Jeg har senere fundet ud af, at alle siderne bliver includet alligevel. Men vil det også sige at ALLE databaseforbindelserne bliver oprettet og lukket igen HVER gang man indlæser main.asp?

/Kotelet
Avatar billede tmceu Praktikant
14. maj 2002 - 16:50 #3
Ja. Alle includes eksekveres før selve ASP scriptet eksekveres.
Avatar billede kotelet Nybegynder
14. maj 2002 - 16:54 #4
Ja, det fandt jeg ud af. Men spørgsmålet er rettere om databaseforbindelserne, som bliver bliver oprettet i de scripts, bliver eksekveret selvom CASE ikke er er 1,2 eller 3? For SÅ er det jo klart at serveren belastes...
Avatar billede tmceu Praktikant
14. maj 2002 - 17:04 #5
Hvis du siger at filerne inkluderes uanset hvad, ja så vil forbindelserne også blive afviklet.
Avatar billede rxftp Nybegynder
14. maj 2002 - 17:06 #6
Bliver alt kode i includes kørt før resten af siden?
så vis man har 2 include filer med response.write i bunden af en side kommer outputtet til at være således:
-> Include1 --> Include2 --> MainPage
Det har jeg aldrig været ude for?!?!? er i sikre på at koden køres? og ikke bare lægges i hukommelsen?
Avatar billede kotelet Nybegynder
14. maj 2002 - 17:07 #7
Så i dette tilfælde:

-------------------

IF a = 1 THEN

Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("d:\home\magicintheboxcom\db\mitb.mdb")
    Conn.Open DSN

Conn.Close
Set Conn = Nothing
END IF

IF a = 2 THEN

Set Conn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & ("d:\home\magicintheboxcom\db\mitb.mdb")
    Conn.Open DSN

Conn.Close
Set Conn = Nothing
END IF

---------------------------

... vil der oprettes forbindelse til databasen TO gange? Også selvom jeg laver et 'IF' 'THEN' 'END IF' script?
Avatar billede tmceu Praktikant
14. maj 2002 - 17:12 #8
I ovenstående tilfælde bør den ikke oprette forbindelsen mere end én gang.

Noget jeg ofte bruger, er at kontrollere state property på mit connection objekt, for at undgå at åbne og lukke for mange gange. Eksempelvis:

If objConn.State <> 1 Then objConn.Open.....
Avatar billede kotelet Nybegynder
19. maj 2002 - 02:34 #9
Hmm.. Fik ikke noget direkte svar, men alligevel et godt råd. Vi deler point :-)

/Kotelet
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