トップ回答者
リクエストタイムアウト時間(executionTimeout)の設定

質問
-
IIS7.5 / ASP.NET 3.5 で Webアプリケーションを開発しています。
データベース中のレコードを全件CSV出力するページがあり、これがASP.NETのタイムアウト時間を超えてしまうことがあるため設定を変える必要が出てきました。その変更方法について質問なのですが、
1.コード中から動的に変更することができるようにmsdnには記載されています。 http://msdn.microsoft.com/ja-jp/library/system.web.configuration.httpruntimesection.executiontimeout(VS.80).aspx そこでPage_Loadの中で次のようにコードしたところ
HttpRuntimeSection runtimeSection = HttpContext.Current.GetSection("system.web/httpRuntime") as HttpRuntimeSection; if (runtimeSection != null) runtimeSection.ExecutionTimeout = TimeSpan.FromSeconds(500);
実行時に「読み取り専用のプロパティです」という例外が出てしまいました。書き込めない理由はなぜでしょうか?
2.Web.config中で configuration/location/system.web/httpRuntime に executionTimeout属性を設定する方法を試したところ、設定時間通りに動きません。1秒と設定したのに15秒前後、15秒と設定したのに40秒前後でタイムアウトしています。
これは、設定時間より早くタイムアウトすることはない、という仕様だと理解していいのでしょうか?
回答
-
1つ目はわかりませんでした。
私の方では、「構成は読み取り専用です。」という System.Configuration.ConfigurationErrorsException になりました。
プロパティとしては読み書きできるように設計されていても、IsReadOnly() は true を返すので、このセクションの内容は変更できないんだと思います。理由はわかりませんけど。
2つ目は以下に書かれていました。
How the Execution Timeout is managed in ASP.NET
http://blogs.msdn.com/b/pedram/archive/2007/10/02/how-the-execution-timeout-is-managed-in-asp-net.aspx15秒単位で Timeout しているかどうかがチェックされるからだそうです。
私のところでは15秒を指定すると20秒ぐらいでタイムアウトしました。タイミングによっては30秒になる場合もあることになりますが、40秒はちょっと多いですね。もう一度試されてもそうなりますか?- 回答としてマーク miuras_net 2010年10月15日 0:25
-
以下のサイトでマイクロソフトの人が、実行時(リクエスト発生後)には変更できないと書かれていました。
http://www.velocityreviews.com/forums/t75299-executiontimeout.html
- 回答としてマーク miuras_net 2010年10月15日 0:25
すべての返信
-
1つ目はわかりませんでした。
私の方では、「構成は読み取り専用です。」という System.Configuration.ConfigurationErrorsException になりました。
プロパティとしては読み書きできるように設計されていても、IsReadOnly() は true を返すので、このセクションの内容は変更できないんだと思います。理由はわかりませんけど。
2つ目は以下に書かれていました。
How the Execution Timeout is managed in ASP.NET
http://blogs.msdn.com/b/pedram/archive/2007/10/02/how-the-execution-timeout-is-managed-in-asp-net.aspx15秒単位で Timeout しているかどうかがチェックされるからだそうです。
私のところでは15秒を指定すると20秒ぐらいでタイムアウトしました。タイミングによっては30秒になる場合もあることになりますが、40秒はちょっと多いですね。もう一度試されてもそうなりますか?- 回答としてマーク miuras_net 2010年10月15日 0:25
-
以下のサイトでマイクロソフトの人が、実行時(リクエスト発生後)には変更できないと書かれていました。
http://www.velocityreviews.com/forums/t75299-executiontimeout.html
- 回答としてマーク miuras_net 2010年10月15日 0:25