Azure App ServiceでホストされているASP.NET MVC Webサイトでは、15秒以上かかるリクエストに対しては強制的にタイムアウトしたいと思っています。ここでは、デフォルトではAzure AppサービスApplicationHost.configでカスタムConnectionTimeoutを設定する
public ActionResult TimeoutTest()
{
var i = 1;
while (true)
{
i++;
}
return new HttpStatusCodeResult(200);
}
...でテストしてきた、常に15秒よりも長くかかるシンプルなアクション(すなわち無限ループは)私は、ブラウザでそのアクションのGETをすれば、私は」です2分後に "500 - The request timed out"エラーが発生します。これはthe "connectionTimeout" default setting in the webLimits section of ApplicationHost.configと一致します。
私が間違っていない限り、このconnectionTimeout値を15秒に変更するだけで十分です。これを行うには、hereの説明に従って、ApplicationHost.configファイル(XDT)にトランスフォームベースのアプローチを使用する必要があることを理解しています。私が正しい場所に(:/home/site/applicationHost.xdt d)にファイルを追加した後、私は次のようapplicationHost.xdtファイルでこれをやった
...
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.applicationHost>
<webLimits xdt:Transform="SetAttributes(connectionTimeout)" connectionTimeout="00:00:15"/>
</system.applicationHost>
</configuration>
...。私は、私のサイトを再起動し、正常に適用された変換ログで見た:
2016-04-20T08:40:44 Start 'site' site extension transform
2016-04-20T08:40:44 StartSection Executing SetAttributes (transform line 4, 18)
2016-04-20T08:40:44 on /configuration/system.applicationHost/webLimits
2016-04-20T08:40:44 Applying to 'webLimits' element (no source line info)
2016-04-20T08:40:44 Set 'connectionTimeout' attribute
2016-04-20T08:40:44 Set 1 attributes
2016-04-20T08:40:44 EndSection Done executing SetAttributes
2016-04-20T08:40:44 Successful 'D:\home\site\applicationHost.xdt' site extension transform
2016-04-20T08:40:44 sandboxproc.exe complete successfully. Ellapsed = 316.00 ms
[編集]:私はまた、変換後に直接のapplicationHost.configをチェックして、新しい値があります:
...
</sites>
<webLimits connectionTimeout="00:00:15" />
</system.applicationHost>
<system.webServer>
<asp>
...
これにもかかわらず、私が上記の方法を繰り返した場合、15秒ではなく2分後にタイムアウトします。
私の質問:なぜこのタイムアウト設定が尊重されていないのですか?
私はthis postを知っていますが、これはまったく同じアプローチをとっているようです(動作すると思われますか?)。
おかげで、はい、私もその1の意識です。また、15秒に設定されていて、違いはありません。 – sammy34
私は上記の詳細を追加しました。 –