For mange database forbindelser?
Hvis jeg prøver at "stresse" min webaplikation, ved at trykke på mange links og gøre dette samtidig fra flere computere, kan jeg fremprovokere en fejl...Webaplikationen kan herefter igen kun komme op ved genstart: c:\winnt\system32\iisreset.exe /RESTART
Se kode herunder:
<%@ Page Language="C#" Debug="true" EnableSessionState="true" EnableViewState="True" %>
<%@ import Namespace="System.Data" %>
<script runat="server">
void Page_Load(object sender, EventArgs e) {
// Tilfaeldigt tal imallem 1 og 1000000
string rndNumber1;
Random rnd = new Random();
rndNumber1 = rnd.Next(1,1000000).ToString();
string rndNumber2 = ""+rndNumber1+1;
string rndNumber3 = ""+rndNumber1+2;
string rndNumber4 = ""+rndNumber1+3;
string rndNumber5 = ""+rndNumber1+4;
Label1.Text = "<img style=\"WIDTH: 390px; HEIGHT: 200px\" src=\"getimage.aspx?imageID=1&"+rndNumber1.ToString() + "\" />";
//Label2.Text = "<img style=\"WIDTH: 160px; HEIGHT: 100px\" src=\"getimage.aspx?imageID=2&"+rndNumber2.ToString() + "\" />";
Label3.Text = "<img style=\"WIDTH: 160px; HEIGHT: 100px\" src=\"getimage.aspx?imageID=3&"+rndNumber3.ToString() + "\" />";
//Label4.Text = "<img style=\"WIDTH: 160px; HEIGHT: 100px\" src=\"getimage.aspx?imageID=4&"+rndNumber4.ToString() + "\" />";
Label5.Text = "<img style=\"WIDTH: 160px; HEIGHT: 100px\" src=\"getimage.aspx?imageID=5&"+rndNumber5.ToString() + "\" />";
int pageID; // Der undersøges om pageID har en værdi.
if ( Request.QueryString["pageID"] != null ) {
pageID = int.Parse( Request.QueryString["pageID"] );
}
else {
// Hvis pageID ikke er sat, sættes denne til 1
pageID=1;
}
// pageID bliver lagt i et sessionsobjekt
//Session.Remove("sessionName");
Session["sessionName"] = pageID;
// Database forbindelse
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("database/agro.mdb");
//Forbindeleseobjekt der tager en parameter med connectionstring, samt placering af DB
System.Data.OleDb.OleDbConnection dbConnection = new System.Data.OleDb.OleDbConnection(connectionString);
//SQL-string
string queryString = "SELECT * FROM side WHERE id = "+pageID+";";
//OleDbCommand-objekt
System.Data.OleDb.OleDbCommand dbCommand = new System.Data.OleDb.OleDbCommand();
//Påsætte SQL-string samt forbindelsesobjekt
dbCommand.CommandText = queryString;
dbCommand.Connection = dbConnection;
// Ved overbelastning kan der opstå fejl her
try {
//Åbner forbindelse
dbConnection.Open();
}
catch {
Response.Write("<b>Beklager - Men der er opstået en fejl. Prøv igen senere.</b><br><br>Database fejl");
}
IDataReader dbReader;
//Henter data fra DB, og lægger dette ind i IDataReader-objektet
dbReader = dbCommand.ExecuteReader();
//Så længe der er poster i forespørgselen afvikles denne while-løkke
while (dbReader.Read()) {
Overskrift.Text = dbReader["Overskrift"].ToString();
Tekst1.Text = dbReader["Tekst1"].ToString();
Tekst2.Text = dbReader["Tekst2"].ToString();
Tekst3.Text = dbReader["Tekst3"].ToString();
Tekst4.Text = dbReader["Tekst4"].ToString();
}
//int sessioner = Session.Count;
//string sessionID = Session.SessionID;
//Session.Contents.Clear ( );
//Session.Contents.Remove ( intQuote );
//Lukker forbindelsen
dbConnection.Close();
dbConnection.Dispose();
dbCommand.Dispose();
dbReader.Dispose();
//Button1.Attributes.Add("onclick","java script:alert('"+"pageID ="+pageID+"\\nqueryString ="+queryString+"\\nSession[sessionName]"+Session["sessionName"]+"\\nAntal Sessioner: "+sessioner+"\\nSessionID: "+sessionID+"');");
//Button2.Attributes.Add("onclick","java script:alert('"+"Billede :"+Session["billede"]+"\\nBillede2: "+Session["billede2"]+"\\nBillede3: "+Session["billede3"]+"\\nBillede4: "+Session["billede4"]+"\\nBillede5: "+Session["billede5"]+"\\n\\ngetimage_NY_pageID: "+Session["getimage_NY_pageID"]+"\\nSession[getimageSessionName]"+Session["getimageSessionname"]+"\\nAntal Sessioner: "+Session["sessioner2"]+"');");
}
</script>
<html>
<head>
<link media="all" href="include/sidestyle.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form runat="server">
<div class="Overskrift"><b><u><asp:Label id="Overskrift" runat="server"></asp:Label></u></b>
</div>
<div class="wrappersideboks1">
<div class="sideboks1"><asp:Label id="Tekst1" runat="server"></asp:Label>
<br />
<asp:Label id="Label5" runat="server"></asp:Label>
<br />
<br />
<asp:Label id="Tekst2" runat="server"></asp:Label>
<br />
<asp:Label id="Label3" runat="server"></asp:Label>
</div>
</div>
<div class="Tekst3"><asp:Label id="Tekst3" runat="server"></asp:Label><asp:Label id="Label1" runat="server"></asp:Label>
<br />
<asp:Label id="Tekst4" runat="server"></asp:Label>
</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
</form>
</body>
</html>
-----
Det er linjen: dbConnection.Open();
som der fejles i når fejlen opstår.
Hvad kan dette skyldes?
Er der noget som jeg mangler at lukke ned?
