58

私のアプリケーションでは、1 つのクエリの実行に 3 分かかります。デフォルトの ExecutionTimeout 値が 110 秒であることがわかりました。これを 500 (秒) に変更しようとしましたが、問題は解決しませんでした。どこかで、設定<compilation debug="false">によりExecutionTimeoutプロパティを構成できることがわかりました。しかし、これでも私の問題は解決しませんでした。

実行時間の長いクエリの実行タイムアウトを増やす方法を知っている人はいますか?

4

6 に答える 6

117

.NET実行タイムアウトは、 Framework 1.0 および 1.1 では90 秒、それ以外では 110 秒です。

デフォルト設定を変更する必要がある場合は、あなたのweb.config下でそれを行う必要があります<httpRuntime>

<httpRuntime executionTimeout = "number(in seconds)"/>

でも覚えておいて:

このタイムアウトは、コンパイル要素の debug 属性が False の場合にのみ適用されます。

コンパイル要素について詳しく見てみる

httpRuntime要素に関するこのドキュメントを見てください

于 2012-05-18T09:36:18.317 に答える
28

より長い実行時間をサポートするようexecutionTimeoutweb.configで設定できます。

executionTimeoutASP.NET によって自動的にシャットダウンされる前に要求を実行できる最大秒数を指定します。MSDN

<httpRuntime  executionTimeout = "300" />

これにより、実行タイムアウトが5 分になります。

オプションの Int32 属性。

ASP.NET によって自動的にシャットダウンされる前に要求を実行できる最大秒数を指定します。

このタイムアウトは、コンパイル要素の debug 属性が False の場合にのみ適用されます。したがって、debug 属性が True の場合、デバッグ中にアプリケーションがシャットダウンしないようにするために、この属性を大きな値に設定する必要はありません。デフォルトは 110 秒です

于 2012-05-18T09:35:11.377 に答える
14

RE。「個々のページにこの値を設定できますか」 – MonsterMMORPG.

はい、ロケーションタグを使用して前の回答を囲むことができます (通常はそうすべきです)。

例えば

  ...
  <location path="YourWebpage.aspx">
    <system.web>
      <httpRuntime executionTimeout="300" maxRequestLength="29296" />
    </system.web>
  </location>
</configuration>

上記のスニペットは、昨日テストした自分の作業中の web.config の最後から取得したものです - それは私にとってはうまくいきます。

于 2016-09-09T09:14:46.253 に答える
1

クエリに時間がかかる場合は、非同期で実行し、完了時にコールバック関数を使用することをお勧めします。

ASP.NETの経験はあまりありませんが、この非同期動作にAJAXを使用できるかもしれません。

通常、Webページは数分ではなく数秒で読み込まれます。ユーザーをそんなに長く待たせないでください!

于 2012-05-18T09:23:53.247 に答える
1

私の場合、wcf を 2 時間以上実行する必要があります。設定しても全く動きませんでした。wcf はおそらく 20 ~ 30 分以上実行されませんでした。そこで、IIS マネージャーでアプリケーション プールのアイドル タイムアウト設定を変更すると、うまくいきました。IIS マネージャーで、アプリケーション プールを選択して右クリックし、詳細設定を選択してから、アイドル タイムアウト設定を任意の分に変更します。したがって、web.config の設定とアプリケーション プールの設定の両方が必要だと思います。

于 2015-12-11T09:32:41.280 に答える