Avatar billede dummy65 Nybegynder
20. juli 2002 - 09:28 Der er 11 kommentarer og
1 løsning

ASP Script der fylder min IIS 5.0 servers hukomelse 100% op

Hej,

Jeg har et ASP script, som virker umiddelbart virker fint, det kan sagtens loades MEN når man holder F5 knappen nede sådan at den står og refresh'er et paar gange i sekundet, så går min IIS 5.0 server total kold, dvs. hukomelsen på serveren bliver brugt 100% og siden kan herefter ikke loades ??  IIS 5.0 Skal så restartes for at det hele virker igen !!

Scriptet kører op mod en MS SQL db og skal håndtere en del beregninger m.m.
Avatar billede dummy65 Nybegynder
20. juli 2002 - 09:29 #1
Jeg mangler måske lige, at der kører adskillige andre ASP sites på samme server hvor den ikke fejler !
Avatar billede neteffect Nybegynder
20. juli 2002 - 09:51 #2
Det kunne jo tyde på, at scriptet ikke rydder op efter sig, dvs sætter recordsets og connections til nothing, når de ikek bruges mere.
Ved du, om serveren går helt død, eller om den måske kan køre videre efter din session er timet ud (typisk efter 20 minutter)?
Avatar billede dummy65 Nybegynder
20. juli 2002 - 11:07 #3
Jamen, nu har jeg prøvet at sætte timeout på session ned til 1 min, og den har stadig fyldt hukomelsen (512 MB) Først når jeg så laver den her IIS restart så virker det normalt igen indtil jeg næste gang holder F5 nede !!
Avatar billede stig3 Mester
20. juli 2002 - 11:10 #4
De gange jeg har oplevet det med 100% er når jeg har fået lavet en uendelig løkke.
Avatar billede neteffect Nybegynder
20. juli 2002 - 11:30 #5
Men hvis siden refreshes, må der være tale om noget, som har en levetid, der er længere end sidens script, med mindre en evt løkke i scriptet fylder session eller application variables. Derfor tror jeg det er værd at se efter åbne connections. Jeg er i øvrigt ikke sikker på, at session timeout også styrer timeout for efterladte connections i pool'en (nu er jeg ude på tynd is).
Avatar billede dummy65 Nybegynder
20. juli 2002 - 11:32 #6
Okay, scriptet kommer her ! :

-------------------
<%
IPNR = Request.ServerVariables("REMOTE_ADDR")
URL = Request.ServerVariables("URL")

If Session("Reload") <> "" & IPNR & "," & URL & "" Then
  Session("Reload") = "" & IPNR & "," & URL & ""
SqlHit = "Update Merchant Set Hits = Hits + 1 Where Id = " & Request.QueryString("MerchantId")
Conn.Execute(SqlHit)
End If
%>
<%
    Function gen_key(digits)

    dim char_array(50)
    Dim t
   
    char_array(1) = "1"
    char_array(2) = "2"
    char_array(3) = "3"
    char_array(4) = "4"
    char_array(5) = "5"
    char_array(6) = "6"
    char_array(7) = "7"
    char_array(8) = "8"
    char_array(9) = "9"

'Next we want to start the randomize statement.

    Randomize

'Next we loop through all of the digits to get the output.

    do while len(output) < digits
          num = char_array(Int((9 - 0 + 1) * Rnd + 0))
          output = output + num
    loop

'Now we set our output and end the function.

    gen_key = output
    End Function
%>
<html>

<head>
<title>Signup</title>
<style>
<!--
td          { font-family: Verdana; font-size: 8 pt; color: #C6B59C }
a:link      { font-family: Verdana; color: #AD9473; font-size: 8 pt }
a:visited    { font-family: Verdana; color: #AD9473; font-size: 8 pt }
a:hover      { font-family: Verdana; color: #CE6B31; font-size: 8 pt }
-->
</style>
</head>

<body bgcolor="#003929">

<table border="0" width="100%" height="100%">
<tr>
<td width="100%" valign="middle" align="center">
<table border="0" width="600" cellspacing="0" cellpadding="0">
<tr>
<td width="500" valign="top">
<table border="0" width="100%" cellspacing="0" cellpadding="0">
<tr>
<td width="100%"><img border="0" src="images/Headline.gif" width="500" height="68"></td>
</tr>
<tr>
<td width="100%" bgcolor="#416B5F" align="center">
<!--Form Start-->
<form method="POST" action="Signup1.asp">
<%
Sql = "Select * From WebSites Where Id = " & Request.QueryString("SiteId")
'response.write sql
Set Rs = Conn.Execute(Sql)
If Request.Cookies("Visionbillider")("AffiliateId") = "" Then
%>
<input type="hidden" name="MerchantId" value="<%= Request.QueryString("MerchantId")%>">
<input type="hidden" name="AffiliateId" value="0">
<input type="hidden" name="SiteId" value="<%= Request.QueryString("SiteId")%>">
<%
Else
%>
<input type="hidden" name="MerchantId" value="<%= Request.Cookies("Visionbillider")("MerchantId")%>">
<input type="hidden" name="AffiliateId" value="<%= Request.Cookies("Visionbillider")("AffiliateId")%>">
<input type="hidden" name="SiteId" value="<%= Request.Cookies("Visionbillider")("SiteId")%>">
<%
End If
%>
<input type="hidden" name="Tdays" value="<%= Rs("Tdays")%>">
<input type="hidden" name="days1" value="<%= Rs("days1")%>">
<input type="hidden" name="days3" value="<%= Rs("days3")%>">
<input type="hidden" name="days6" value="<%= Rs("days6")%>">
<input type="hidden" name="days12" value="<%= Rs("days12")%>">
<input type="hidden" name="TPrice" value="<%= Rs("TPrice")%>">
<input type="hidden" name="Price1" value="<%= Rs("Price1")%>">
<input type="hidden" name="Price3" value="<%= Rs("Price3")%>">
<input type="hidden" name="Price6" value="<%= Rs("Price6")%>">
<input type="hidden" name="Price12" value="<%= Rs("Price12")%>">
<input type="hidden" name="Ordrenummer" value="<%= gen_key(10)%>">
<p><br>
<b>All Fields Are Reqiured</b></p>
<table border="0" width="350">
<tr>
<td width="100">Fullname</td>
<td width="250"><input type="text" name="Fullname" size="20" style="font-size: 8 pt; font-family: arial"></td>
</tr>
<tr>
<td width="100">Address</td>
<td width="250"><input type="text" name="Address" size="20" style="font-size: 8 pt; font-family: arial"></td>
</tr>
<tr>
<td width="100">Postal</td>
<td width="250"><input type="text" name="Postal" size="20" style="font-size: 8 pt; font-family: arial"></td>
</tr>
<tr>
<td width="100">City</td>
<td width="250"><input type="text" name="City" size="20" style="font-size: 8 pt; font-family: arial"></td>
</tr>
<tr>
<td width="100">State</td>
<td width="250"><select name="State" size="1" style="font-size: 8 pt; font-family: arial">
                      <option value selected>Select One</option>
                      <option value="xx">Outside U.S./Canada</option>
                      <option value="AL">Alabama</option>
                      <option value="AK">Alaska</option>
                      <option value="AB">Alberta</option>
                      <option value="AS">American Samoa</option>                   
                      <option value="WV">West Virginia</option>
                      <option value="WI">Wisconsin</option>
                      <option value="WY">Wyoming</option>
                      <option value="YT">Yukon</option>
                    </select></td>
</tr>
<tr>
<td width="100">Country</td>
<td width="250"><select name="Country" size="1" style="font-size: 8 pt; font-family: arial">
                      <option selected value>Select One</option>
                      <option value="US-United States">United States</option>
                      <option value="GB-United Kingdom">United Kingdom</option>
                      <option value="CA-Canada">Canada</option>
                      <option value="AF-Afghanistan">Afghanistan</option>
                      <option value="AL-Albania">Albania</option>
                      <option value="DZ-Algeria">Algeria</option>
                      <option value="AS-American Samoa">American Samoa</option>
                      <option value="AD-Andorra">Andorra</option>
                      <option value="AO-Angola">Angola</option>
                      <option value="AI-Anguilla">Anguilla</option>
                      <option value="AQ-Antarctica">Antarctica</option>
                      <option value="AG-Antigua And Barbuda">Antigua And Barbuda</option>
                   
                   
                   
                   
                      <option value="TV-Tuvalu">Tuvalu</option>
                      <option value="UG-Uganda">Uganda</option>
                      <option value="UA-Ukraine">Ukraine</option>
                      <option value="AE-United Arab Emirates">United Arab
                      Emirates</option>
                      <option value="UM-United States Outlying Islands">United
                      States Outlying Islands</option>
                      <option value="UY-Uruguay">Uruguay</option>
                      <option value="UZ-Uzbekistan">Uzbekistan</option>
                      <option value="VU-Vanuatu">Vanuatu</option>
                      <option value="VE-Venezuela">Venezuela</option>
                      <option value="VN-Viet Nam">Viet Nam</option>
                      <option value="VG-Virgin Islands British">Virgin Islands
                      British</option>
                      <option value="VI-Virgin Islands US">Virgin Islands US</option>
                      <option value="WF-Wallis Futuna Islands">Wallis Futuna
                      Islands</option>
                      <option value="EH-Western Sahara">Western Sahara</option>
                      <option value="YE-Yemen">Yemen</option>
                      <option value="YU-Yugoslavia">Yugoslavia</option>
                      <option value="ZM-Zambia">Zambia</option>
                      <option value="ZW-Zimbabwe">Zimbabwe</option>
                    </select></td>
</tr>
<tr>
<td width="100">Phone</td>
<td width="250"><input type="text" name="Phone" size="20" style="font-size: 8 pt; font-family: arial"></td>
</tr>
<tr>
<td width="100">E-mail</td>
<td width="250"><input type="text" name="Email" size="20" style="font-size: 8 pt; font-family: arial">&nbsp;&nbsp;
<b>Must be valid !</b></td>
</tr>
<tr>
<td width="100">Price</td>
<td width="250"><select size="1" name="Belob" style="font-size: 8 pt; font-family: arial">
                      <%
                        If Rs("TPrice") = 0 Then
                          'Lad være med at vise noget !
                        Else
                      %>
                      <option value="<%= Rs("TPrice")%>"><%= Rs("TDays")%> Days Trail $<%= Rs("TPrice")/100%><%If Rs("TRebill") = True Then%> (Rebilled 30 Days)<%Else%><%End If%></option>
                      <%End If%>
                      <%
                        If Rs("Price1") = 0 Then
                          'Lad være med at vise noget !
                        Else
                      %>
                      <option value="<%= Rs("Price1")%>">1 Month $<%= Rs("Price1")/100%><%If Rs("Rebill1") = True Then%> (Rebilled 30 Days)<%Else%><%End If%></option>
                      <%End If%>
                      <%
                        If Rs("Price3") = 0 Then
                          'Lad være med at vise noget !
                        Else
                      %>
                      <option value="<%= Rs("Price3")%>">3 Months $<%= Rs("Price3")/100%></option>
                      <%End If%>
                      <%
                        If Rs("Price6") = 0 Then
                          'Lad være med at vise noget !
                        Else
                      %>
                      <option value="<%= Rs("Price6")%>">6 Months $<%= Rs("Price6")/100%></option>
                      <%End If%>
                      <%
                        If Rs("Price12") = 0 Then
                          'Lad være med at vise noget !
                        Else
                      %>
                      <option value="<%= Rs("Price12")%>">1 Year $<%= Rs("Price12")/100%></option>
                      <%End If%>
                    </select></td>
</tr>

</table>
<p><input type="submit" value="Continue" name="B1" style="font-size: 8 pt; font-family: arial"><br>
<br>
You must read and agree to the <a href="terms.htm"><b>terms and conditions</b></a><b>
<input type="checkbox" name="Subscription"></b><br>
<br>
Your IP address of (<%= Request.Servervariables("REMOTE_ADDR")%>)

</p>
</form>
<!--Form End-->
</td>
</tr>
</table>
</td>
<td width="100" valign="top" align="center">
<table border="0" width="100" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" valign="top" align="center"><br>
<br>
<br>
<br>
<br>

</tr>
</table>
</td>
</tr>
<tr>
<td width="500" valign="top" align="center">

</td>
<td width="100" valign="top" align="center">
</td>
</tr>
</table>
</td>
</tr>
</table>

</body>

</html>
RS.Close
Set Conn = Nothing
<%
Conn.Close
Set Conn = Nothing
%>

Håber der er en venlig sjæl der kan finde fejlen og fortælle mig hvad der er galt ?!!
Avatar billede websam Nybegynder
20. juli 2002 - 11:34 #7
Du kunne jo starte med at ændre dette !!!

<%
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%>

WebSam
Avatar billede dummy65 Nybegynder
20. juli 2002 - 11:35 #8
Det sidste her i scriptet (helt i bunden) er en fejl, det er normalt ikke med :

RS.Close
Set Conn = Nothing
Avatar billede dummy65 Nybegynder
20. juli 2002 - 11:36 #9
Okay, det har jeg ændret nu, men fejlen er den samme !
Avatar billede neteffect Nybegynder
20. juli 2002 - 13:32 #10
Det er nok ikke løsningen, men hvis du havde brugt option explicit (som man jo altid bør, i hvert fald før man spørger andre), ville du opdage, at variablen output plus flere andre variabler ikke er defineret med dim. Til gengæld variablen t, som ikke benyttes.
Avatar billede websam Nybegynder
20. juli 2002 - 14:53 #11
Ændre disse :

    char_array(1) = "1"
    char_array(2) = "2"
    char_array(3) = "3"
    char_array(4) = "4"
    char_array(5) = "5"
    char_array(6) = "6"
    char_array(7) = "7"
    char_array(8) = "8"
    char_array(9) = "9"

Til dette :

    char_array(0) = "1"
    char_array(1) = "2"
    char_array(2) = "3"
    char_array(3) = "4"
    char_array(4) = "5"
    char_array(5) = "6"
    char_array(6) = "7"
    char_array(7) = "8"
    char_array(8) = "9"

Så burde det hele virke !?!
Avatar billede dummy65 Nybegynder
30. juli 2002 - 15:37 #12
Okay, ikke godt nok
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