19 Stimmen

MySql.Data.MySqlClient.MySqlException: Zeitüberschreitung abgelaufen

In letzter Zeit wirft eine bestimmte Seite in meiner Webanwendung die

Details zur Ausnahme: MySql.Data.MySqlClient.MySqlException: Timeout abgelaufen. Die Timeout-Periode ist abgelaufen, bevor der Vorgang abgeschlossen Operation oder der Server antwortet nicht.

Obwohl ich Ibtais als Persistenzschicht verwende, tritt dieser Fehler auf. Ich habe die MySql-Dienstinstanz neu gestartet, aber ich erhalte immer noch denselben Fehler. Früher ist das nicht passiert, aber in letzter Zeit passiert es häufig.

Alle auf dem Server installierten Webanwendungen verwenden Ibatis, und der DB-Server bleibt auf demselben Rechner, auf dem auch IIS installiert ist. Es gibt etwa 8000 Datensätze, von denen etwa 300 bis 500 beim Laden der Seite gefiltert werden würden

Gibt es Hinweise auf die Ursache des Problems?

30voto

Raven Punkte 386

Ich hatte das gleiche Problem wie Sie, und ich habe Folgendes gefunden MySQLConnection - Festlegen des Standardzeitlimits für Befehle .

Fügen Sie einfach " Standard-Befehlszeitüberschreitung \=xxx" in Ihren connectString ein, der Wert dieses Schlüssels wird in Sekunden angegeben.
Ich habe es versucht und es hat funktioniert.

5voto

Dabloons Punkte 1392

Sie könnten die Befehlszeitüberschreitung auf 0 setzen, was jedoch keine gute Idee ist. Einige Anfragen könnten unendlich lange dauern.

Es gibt ein zugrundeliegendes Problem, das die Zeitüberschreitung der Abfragen überhaupt erst verursacht. Fügen Sie Daten ein, aktualisieren Sie sie oder arbeiten Sie in irgendeiner Weise mit großen Binärwerten, die die Tabelle sperren würden? Das ist der häufigste Grund für einen solchen Fehler bei einer so geringen Datenmenge.

2voto

JEuvin Punkte 551

Ihre Verbindungszeichenfolge muss folgendermaßen aussehen:

DotNet-Framework:

<add key="MYSQL_CONNECTION_STRING_RDS" value="Uid=userid;Password=pass;
     Server=localhost;Port=3306;
     Database=dbname;default command timeout=0;SslMode=none" 
/>

DotNet-Kern

"MYSQL_CONNECTION_STRING_RDS": {
    "ConnectionString": "Server=localhost;Database=dbname;user=userid;password=pass;default command timeout=0;",
    "ServerVersion": "8.0.22"
  }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X