2016-04-07 15 views
0

MVC(ASP.Net + C#)ベースのアプリケーションを使用しています。 Jquery DataTableを使用してレコードを表示しました。今問題は、いくつかのレコードのために、その作業の良いといくつかのレコードのためにフロントエンド側で "Timeout expired"のようなエラーを与えているということです。タイムアウトが切れています。操作が完了する前にタイムアウト時間が経過しているか、サーバーが応答していません

私はエンティティフレームワーク&レコードをフェッチするストアドプロシージャを使用しています。いくつかの値については、タイムアウトエラーが発生しています。これらのパラメータを持つSpを直接実行した場合(タイムアウトエラーが発生する)、正常に動作していますが、SQL Serverでは約11秒の時間がかかります。私はちょうどタイムアウトエラーfrond端側を得ています。

以下のエラーが発生しています。

{「タイムアウトが期限切れ。応答していないタイムアウト期間前 動作の完了またはサーバに経過。」}、{「待機操作 がタイムアウト」}

Iを試みましたweb.configに追加されました

  1. 接続ライフタイム= 120;
  2. 最小プールサイズ= 120;
  3. 接続タイムアウト= 300;
  4. 最大プールサイズ= 1000;プール= true;
  5. <httpRuntime executionTimeout="180" maxRequestLength="2000000000" />

しかし、ワークアウトしませんでした。

私のWeb.Configは次のとおりです。

<add name="TestEntities" connectionString="metadata=res://*/Test2.csdl|res://*/Test2.ssdl|res://*/Test2.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=Test2;integrated security=True;multipleactiveresultsets=True;Connection Lifetime=120;Min Pool Size=120;Connection Timeout=300;Max Pool Size=1000;Pooling=true;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /> 

助けてください。私は120にCommandTimeoutのを増加させることによって、問題を解決した

おかげ -Nimesh

+1

データコンテキストでストアドプロシージャを呼び出すときに 'command timeout'を設定/増やす必要があると思います。 HTTPランタイムは、要求がIISに対してタイムアウトし、接続タイムアウトが接続を作成するためのものです。 (あなたの言及に基づいて、ストアドプロシージャもパラメータスニッフィングの問題に悩まされているか、または最適化されているかもしれません) –

+0

私の経験上、まずタイムアウトを修正することで解決してください。つまり、sprocが時間内に終了することを確認してください。ページングパラメータを追加します。それが助けにならない場合(試行したくない場合)、最後の手段としてコマンド/トランザクションのタイムアウトを増やしてください。しかし、他のタイムアウトも(IIS、マシンの設定など)キックインすることを期待してください。実際、実行時間を短縮できない場合は、Webソケットのような非同期プロトコルを探すべきでしょう。 –

+0

FYI、私はそのSpsの複合型を生成し、型を生成しています。 – Nimesh

答えて

1

Db.CommandTimeout = 120; 
2

SQLサーバがさらに実行(パラメータスニッフィング)のパフォーマンスを最適化するために、ストアドプロシージャの実行プランを作成します。 SSMSでこのストアドプロシージャを実行するとうまくいきますが、ASP.NET MVCアプリケーションから同じストアドプロシージャを実行しようとすると、タイムアウトの問題に直面します。 これを修正するには、ストアドプロシージャ 'WITH RECOMPILE'オプション(パラメータの後に)を再作成/変更します。私は今日この問題に直面した。私のストアドプロシージャ 'RECOMPILE'オプションを変更し、それは魅力的に機能しました。詳細は、「パラメータスニッフィング」を参照してください。

関連する問題