---
title: "Cannot access a closed Stream"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/159527-cannot-access-a-closed-stream"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "thevice"
published: "2007-04-22T10:36:05.000Z"
updated: "2007-04-22T20:10:25.000Z"
replies: 19
views: 632
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/159527-cannot-access-a-closed-stream"
---

# Cannot access a closed Stream

## #1 — thevice, 2007-04-22T10:36Z

Hej!

Jag skulle lägga upp min hemsida på mitt webbhotell för att kolla så allt fungerade. Jag körde innan med MySQL databasen på min dator. Men ska använda databasen på mitt webbhotell. 
Problemet ligger i när man ska använda databasen då får jag detta felmeddelande:

System.ObjectDisposedException: Cannot access a closed Stream.

Kod:

```
protected void MemberLogin_Click(object sender, EventArgs e)
{
	if (Page.IsValid)
	{
		using (MySqlConnection objConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString))
		{
			objConnection.Open();
			using (MySqlCommand objCommand = new MySqlCommand("", objConnection))
			{
				objCommand.CommandText = "SELECT intID, strRole, intBanned FROM tblMembers WHERE strUsername = ?strUsername AND strPassword = ?strPassword";
				objCommand.Parameters.Add(new MySqlParameter("?strUsername", tbUsername.Text));
				objCommand.Parameters.Add(new MySqlParameter("?strPassword", tbPassword.Text));
				//Fixar lite saker
			}
			objConnection.Close();
		}
	}
}
```

 

Vad gör jag för fel? Kan tillägga att på mitt webbhotell så har de MySQL 4.0.18 och hemma på datorn har jag den nyaste.

Hur löser jag detta?

/ Timmie

Permalänk: https://www.webforum.nu/p/159527

## #2 — Nickemannen, 2007-04-22T12:01Z

Vilken rad kommer felet på?
Det hade varit intressant att veta vad som händer på fixar lite saker.

Permalänk: https://www.webforum.nu/p/1969195

## #3 — thevice, 2007-04-22T12:24Z

Denna rad kommer felet på:
objConnection.Open();

vet inte om det här kan vara till hjälp:

```
[ObjectDisposedException: Cannot access a closed Stream.]
   System.IO.__Error.StreamIsClosed() +56
   System.IO.BufferedStream.WriteByte(Byte value) +16
   MySql.Data.MySqlClient.MySqlStream.WriteHeader() +103
   MySql.Data.MySqlClient.MySqlStream.Write(Byte[] buffer, Int32 offset, Int32 count) +223
   MySql.Data.MySqlClient.NativeDriver.ExecuteCommand(DBCmd cmd, Byte[] bytes, Int32 length) +80
   MySql.Data.MySqlClient.NativeDriver.SetDatabase(String dbName) +29
   MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String database) +68
   MySql.Data.MySqlClient.MySqlConnection.Open() +323
   LinkopingLife._Default.MemberLogin_Click(Object sender, EventArgs e) in c:\webs\talkactive\wse64971\tmpurl.booring.se\Default.aspx.cs:42
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5102
```

Permalänk: https://www.webforum.nu/p/1969198

## #4 — Zaiman, 2007-04-22T15:43Z

Vet inte om det är det som är felet men jag har upptäckt att vid användning av using uppstår problem ibland. Iaf när jag som du kör lokalt har det fungerat med inte på hotellet.

Har då gjort om det till try/catch/finally vilket motsvarar using å vips så fungerar det.

Prova ifall det fungerar för dig...

Det är förmodligen något annat fel men det skadar inte att prova.

Lycka till

Permalänk: https://www.webforum.nu/p/1969217

## #5 — thevice, 2007-04-22T16:24Z

Icke sa nicke, när jag kör med try/catch så kommer felmeddelandet fortfarande fast sidan visas allt som är innan kodenraden objConnection.Open(); kommer. Felmeddelandet kommer högst upp på sidan är ser ut typ så här:

```
Cannot access a closed Stream.: at System.IO.__Error.StreamIsClosed() at System.IO.BufferedStream.WriteByte(Byte value) at MySql.Data.MySqlClient.MySqlStream.WriteHeader() at MySql.Data.MySqlClient.MySqlStream.Write(Byte[] buffer, Int32 offset, Int32 count) at MySql.Data.MySqlClient.NativeDriver.ExecuteCommand(DBCmd cmd, Byte[] bytes, Int32 length) at MySql.Data.MySqlClient.NativeDriver.SetDatabase(String dbName) at MySql.Data.MySqlClient.MySqlConnection.ChangeDatabase(String database) at MySql.Data.MySqlClient.MySqlConnection.Open() at LinkopingLife._Loggout.Page_Load(Object sender, EventArgs e) in c:\Documents and Settings\Micke\Mina dokument\Visual Studio 2005\WebSites\LL\Loggout.aspx.cs:line 31
```

 

Det kan även vara jag som har fattat det fel med try/catch har aldrig använt det förut. Jag gjorde så här:

```
try{
//all kod som vanligt med using.
}
catch (Exception ex)
{
Response.Write(ex.Message + ": " + ex.StackTrace);
}
```

Permalänk: https://www.webforum.nu/p/1969220

## #6 — ordell, 2007-04-22T17:22Z

Hm, nu har jag inte jobbat med en MySql-server, så jag vet inte vilka fel meddelanden det kan ge specifikt. Men har du kollat så du har rätt connectionstring för anslutningen?

Ett tips är även att helt skippa using () och instansiera objektet "som vanligt".

Permalänk: https://www.webforum.nu/p/1969242

## #7 — thevice, 2007-04-22T17:54Z

Connectionstringen är rätt!
Varför ska s´jag skippa using () helt? Jag tycker att det är betydligt sexigare när man har så men jag kanske har fel. Vad gör det för skillnad? Nu har jag enbart så för det är skönare för ögonen.

Permalänk: https://www.webforum.nu/p/1969253

## #8 — Zaiman, 2007-04-22T18:23Z

Ändra:

```
using (MySqlConnection objConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString))
```

Till:

```
using (MySqlConnection objConnection = new MySqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ToString()))
```

Den koden fungerar för mig iaf.

Permalänk: https://www.webforum.nu/p/1969259

## #9 — ordell, 2007-04-22T18:46Z

using är ju bra på det sättet att Dispose automatiskt anropas efter att koden i using-blocket har exekverat klart.

Med tanke på att felet du får är ObjectDisposedException så misstänker jag att det har något med det att göra.

Vad händer i "// fixar lite saker"?

Permalänk: https://www.webforum.nu/p/1969268

## #10 — thevice, 2007-04-22T18:47Z

Tackar det fungerar!

Permalänk: https://www.webforum.nu/p/1969270

## #11 — ordell, 2007-04-22T18:49Z

Hur löste du problemet? :)

Permalänk: https://www.webforum.nu/p/1969271

## #12 — thevice, 2007-04-22T18:54Z

Eller det fungerade inte alls, om jag körde med min server och webbhotellets databas så funkade det. körde jag bara med webbhotellet så funkade det ej. :(

Detta händer i "// fixar lite":

```
using (MySqlDataReader objDataReader = objCommand.ExecuteReader())
{
	if (!objDataReader.HasRows)
	{
		lblError.Visible = true;
	}
	else
	{
		objDataReader.Read();
		if (Convert.ToInt32(objDataReader["intBanned"]) == 0)
		{
			Session.Add("intID", Convert.ToInt32(objDataReader["intID"]));
			Session.Add("strRole", Convert.ToString(objDataReader["strRole"]));
			Session.Timeout = 60;
		}
		else
		{
			Session.Add("intBanned", "1");
			Response.Redirect("banned.aspx");
		}
	}
}
```

Permalänk: https://www.webforum.nu/p/1969272

## #13 — Zaiman, 2007-04-22T18:56Z

Vad får du för fel på hotellet då?

Permalänk: https://www.webforum.nu/p/1969273

## #14 — thevice, 2007-04-22T18:57Z

Samma som vanligt:
System.ObjectDisposedException: Cannot access a closed Stream.

Permalänk: https://www.webforum.nu/p/1969274

## #15 — Zaiman, 2007-04-22T19:02Z

Eftersom du läser upp strängen från web.config, kan du prova med att hårdkoda in anslutningssträngen på hotellet? Bara för att se att den öppnar anslutningen till databasen.

Det verkar i alla fall som om anslutningssträngen inte är korrekt på hotellet.

Permalänk: https://www.webforum.nu/p/1969275

## #16 — thevice, 2007-04-22T19:14Z

Nu så fungerar det inte hemma heller. Testade att hårdkoda in anslutningssträngen men ingen effekt.

Permalänk: https://www.webforum.nu/p/1969278

## #17 — Zaiman, 2007-04-22T19:14Z

Kan du visa koden? Byt lösenord och användarnamn.

Permalänk: https://www.webforum.nu/p/1969280

## #18 — thevice, 2007-04-22T19:40Z

La Connstring i AppSettings i web.config istället och ändrade till onfigurationManager.AppSettings\["DatabaseConnection"\] så löste det sig ;)

Tack för all hjälp!

Permalänk: https://www.webforum.nu/p/1969288

## #19 — Zaiman, 2007-04-22T19:54Z

Jahapp  :OO 

Markera tråden som löst också   ;)

Permalänk: https://www.webforum.nu/p/1969292

## #20 — thevice, 2007-04-22T20:10Z

Och hur gör man det? ;P

Permalänk: https://www.webforum.nu/p/1969295

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/159527-cannot-access-a-closed-stream
