web-dev-qa-db-ja.com

Webサービス要求のタイムアウトを増やす方法は?

変更できないASP.NET Webアプリケーションがあります(バイナリしかありません)。このアプリケーションはWebサービスに接続し、クライアント側(私のWebアプリ)から接続が閉じられているようです。宛先サーバーのmachine.configの「executionTimeout」を増やしましたが、しばらく待った後、私のWebアプリはまだ停止しているようです。

Web.configを変更するだけで、Webアプリケーションのタイムアウト時間を増やす方法はありますか?私が言ったように...コードのタイムアウトを変更できないので、私の唯一のオプションは設定ファイルを使用することです。

ありがとう!

19
sachaa

これがうまくいくかどうか試してください。

まず、httpRuntime要素のexecutionTimeout属性のタイムアウトを増やす必要があります。これは、セッションタイムアウトなどの他のタイムアウト属性とは異なり、秒で言及されていることに注意してください。

<httpRuntime 
    executionTimeout="36000"

さらに、この属性は、Compilation要素のdebug属性をfalseに設定した場合にのみ有効になります。これは、言及したMSDNリンクでも指定されています。お気に入り、

<compilation 
   debug="false" 
../>

ただし、これはセッションタイムアウトと連動します。はい、セッションがタイムアウトした場合、エラーがスローされます。そして、executionTimeout値が有効になるのを待ちません。そのため、セッションタイムアウトをより高い値に設定する必要もあります。これは数分であることに注意してください。次のようになります

<sessionState 
    mode="InProc" 
    timeout="360"
    ...
    />

そして、これらはすべてAppPoolリサイクルプロセスによってオーバーライドされることに注意してください。そのため、Webサイトが使用するApppoolのアイドルタイムアウト値を、セッションタイムアウトと少なくとも同じ値またはより高い値に設定する必要があります。

ここで見つけました http://www.eggheadcafe.com/community/aspnet/17/10111748/how-can-we-increase-the-t.aspx

26
Thea

Webアプリケーションのデフォルトのタイムアウトは90秒で、通常は一般的な使用には十分です。タイムアウトの発生元に注意することが重要です。ページ自体またはそれを引き起こしているページ内の何かからのものですか?どちらの場合でも、「ページ」がタイムアウトしているように見えます。

私のページもタイムアウトになっていたので、私はこの質問に出くわしました。例外はSQLから発生していることが判明し(実際のエラーを読んでください)、実際にはSQLの問題でした。それを知ったら、簡単に修正できました。

5
Hammad Khan