ich den Code aktualisiert, um zu vereinfachen esMySql Connection Pool sickerte nach ThreadAbortedException
ich ein seltsames Problem gestoßen sind, die auf diesem Code noch nie passiert (perfekt für 2 Jahre laufen).
Ich verwende MVC-Anwendung über mehrere IIS und MySQL über C# -Code.
Abfrage Tabelle X empfängt Antwort von einer anderen Tabelle in demselben Schema.
Das Problem tritt sporadisch auf einigen IIS (einmal 1-4 Tage) und gelöst von 3 iisreset. Hier
ist der Code Ich verwende (aktualisiert):
using (var conn = new MySqlConnection(connectionString))
{
var command = conn.CreateCommand();
command.CommandText = sql;
IDataReader reader;
try
{
reader = command.ExecuteReader();
}
catch (Exception ex)
{
throw new MoranbernateQueryException(sql, ex);
}
using (reader)
{
while (reader.Read())
{
Console.WriteLine(sql, GetTableFromReader(reader));
}
}
}
}
private static string GetTableFromReader(IDataReader reader)
{
var schema = reader.GetSchemaTable();
var rows = schema?.Rows;
if (rows != null && schema.Columns.Count > 11)
{
return rows[0][10].ToString();
}
}
Das Ergebnis dieses Codes ist eine SQL-Abfrage auf Tabelle A, aber der Tisch (und Daten) von dem Leser Schema B Beide Tabellen befinden sich in derselben DB und demselben Schema.
Hat jemand anderes diese Art von Problem festgestellt? Ich würde gerne eine Theorie oder einen Vorschlag für eine Untersuchung hören.
Befehl eine Instanz von MySqlConnection ist, wie Sie es schaffen, diesen Code zu kompilieren? – Steve
@GSerg - Leser wird nach Beendigung des Verwendungsblocks entsorgt. Aber es wäre sehenswert, dass diese Methode darin lebt und wie sie heißt. – Paddy
Ich arbeite mit @Tom und ich möchte aktualisieren, wir fanden, dass wir einen langen Prozess wegen einer Funktion ausgeführt hatten (entfernt), aber ich hatte 'ThreadAbortedException' geworfen also kein Versuch zu fangen beim Lesen von Daten aus' MySql' Die Konsequenz war, dass unser Verbindungspool nicht synchronisiert wurde und wir Verbindungsverlust hatten. Jetzt versuchen wir zu verstehen, ob dies ein MySql-Treiberproblem oder etwas anderes ist. Irgendwelche Gedanken? – guyl