I have and asp.net mvc 3 web site. When running it on local VS web server or IIS express it`s ok. But when running it on IIS (IIS 7.5 Windows 2008 R2) it seems like memory leak as memory usage is growing all the time. Any ideas?
One more update: there`s such a code in the app:
SqlConnection conn = new SqlConnection { //creating connection here };
conn.Open();
SqlCommand command = conn.CreateCommand();
try
{
var reader = command.ExecuteReader();
while (reader.Read())
{
//read the data
}
}
finally
{
conn.Close();
}
Maybe there should be something like reader.Dispose? Can it be the cause of memory leak?
UPDATE: for some reason gc.Collect fixes the issue. But it`s not hte way out as calling gc.collect all the way is a bad idea.
well best practice here would be to use brackets, this is a great feature of c#. when you use the “using” keyword with a bracket, it would dispose the used object automatically, when running out of the bracket scope. here’s an example;
Here’s also the microsoft link that says “The connection is automatically closed at the end of the using block.” http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close%28v=VS.85%29.aspx
I hope it helps.