15

最近、私のWebアプリの特定のページが

例外の詳細:MySql.Data.MySqlClient.MySqlException:タイムアウトが期限切れになりました。操作が完了する前にタイムアウト期間が経過したか、サーバーが応答していません。

永続層としてIbtaisを使用していますが、このエラーが発生します。MySqlサービスインスタンスを再起動しましたが、同じエラーが発生します。以前は発生しませんでしたが、最近は頻繁に発生します。

サーバーにデプロイされたすべてのWebアプリケーションはIbatisを使用し、DBサーバーはIISがインストールされているのと同じマシン上に残ります。ページの読み込み時に約300から500がフィルタリングされる約8000のレコードがあります

問題の原因についての洞察はありますか?

4

3 に答える 3

25

私はあなたと同じ問題に遭遇しました、そして私はこのMySQLConnection--デフォルトのコマンドタイムアウトを指定することを見つけました。

connectStringに「defaultcommandtimeout= xxx」を追加するだけで、このキーの値は秒単位です。
私は試しましたが、うまくいきました。

于 2013-07-17T09:58:54.787 に答える
2

コマンドのタイムアウトを0に設定することもできますが、それはお勧めできません。一部のリクエストは無期限に続行される可能性があります。

そもそもクエリがタイムアウトする原因となっている根本的な問題があります。テーブルをロックする大きなバイナリ値を挿入、更新、または何らかの方法で操作していますか?これが、このような少量のデータでこのようなエラーが発生する最も一般的な理由です。

于 2012-07-06T00:02:49.573 に答える
0

接続文字列を次のようにします。

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 Core

"MYSQL_CONNECTION_STRING_RDS": {
    "ConnectionString": "Server=localhost;Database=dbname;user=userid;password=pass;default command timeout=0;",
    "ServerVersion": "8.0.22"
  }
于 2021-10-20T13:53:44.047 に答える