Hallo,
ich bin auf der Suche nach einem Memory Leak bei einer alten SQL Anwendung.
Konfiguration: SQL Server 2003 auf Windows Server 2000,
SQL Anwendung auf Windows XP Sp 3, .Net 2.0 , VS2005, C#, kein ODBC
Dieses Memory Leak tritt nicht auf, wenn ich die Anwendung auf einem Windows Server 2000 Rechner laufen lasse.
Das Memroy Leak tritt auf, bei alle Aufrufen vom SQL-Reader.
z.B.:
using(connection.SqlDataReader = cmd.ExecuteReader())
{
if(connection.SqlDataReader.Read())
{
...
}
}
Es wird keine Exception durchgereicht.
Bei der Analyse habe ich aber folgende Fehlermeldung durch den Debugger gefunden (nach dem Ende der using Anweisung):
Connection.SqlDataReader.Depth threw an exception of type 'System.Invalid Operation Exception'
bei System.Data.SqlClient.SqlDataReader.get_Depth()
Ungültiger Versuch, zu Depth, da der Datenleser bereits geschlossen ist.
Meine Überlegung ist derzeit, ob diese Exception verhindert, das der Speicher wieder freigegeben wird.
Vielelicht fehlt mir auch nur ein Service Pack. (Wurde damals bei Windows Server benötigt)
Gruß
Christoph