- PR -

ASP.NET WEBサーバービジー状態時の対応について

1
投稿者投稿内容
かえで
常連さん
会議室デビュー日: 2004/09/16
投稿数: 38
投稿日時: 2005-07-04 16:57
いつもお世話になっております。

今ASP.NET(VB)にてWEBアプリを開発しております。
今は、複数クライアントからWEBサーバーに対する要求数が多く、後から要求を出したクライアントには
"アクセスが集中しているので(ビジー状態だから)時間おいてから再度リトライしてね"
という感じの警告を出せるのかと思い、調査しながら実際に実験している所です。

【開発環境】
・Windows2003Server
・IIS6.0
・ASP.NET 1.1(VB)
・ブラウザ:IE6.0

【質問1】
 Machine.Configにて、[ProcessModel-RequestQueueLimit]を仮に1と設定しました。
 また簡単なWEBアプリを作成し、そのWeb.Configにて以下のような設定をしました。
<customErrors defaultRedirect="ErrorAll.htm" mode="On">
<error statusCode="503" redirect="err503.html" />
</customErrors>

 この状態にて、WEBアプリを2つ起動した所
 ・一方は、正常表示
 ・もう片方は"サーバーがビジー状態です"というErrorAll.htmでもerr503.htmlでも定義していないエラーメッセージが表示されてしまいました。

 そこで、いろいろ調べた結果ASP.NET1.1ではビジー状態で503を返さないことが判明しました。
 http://support.microsoft.com/default.aspx?scid=kb;ja;822148

 出来ればカスタマイズをしたエラーページをビジー状態で返せないものかと思っておりますが、何か良い手立てはないものでしょうか?


【質問2】
 今度はWEB.CONFIGで[httpRuntime-appRequestQueueLimit]を対象としました。
 appRequestQueueLimitに関しては、以下を参照しました。
 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=2160&forum=7
 
 ここで、上記で作成したWEBアプリのWeb.Configにて以下のような設定をしました。
 <httpRuntime executionTimeout="90"
        maxRequestLength="4096"
        useFullyQualifiedRedirectUrl="false"
        minFreeThreads="0"
        minLocalRequestFreeThreads="0"
        appRequestQueueLimit="1"
        enableVersionHeader="true"/>

 ※Machine.Configの<httpRuntime>はデフォルト値をそのまま設定してあります。
  appRequestQueueLimit=100 minFreeThreads=8

 そして、今度はこのWEBアプリを10同時に起動してみましたが、ビジー状態のエラーが返される所か、起動した10個のアプリすべてが正常処理されてしまいました。

 なぜ、ビジー状態とならないのでしょうか?

以上です。
説明で分かりにくい所があるとは思いますが、ご存知の方がいらっしゃったらご教授して頂きたく思います。
宜しくお願い致します。

[ メッセージ編集済み 編集者: かえで 編集日時 2005-07-04 18:24 ]
1

スキルアップ/キャリアアップ(JOB@IT)