IIS から 500.13 エラーを返す方法はありますか? 500.13 エラーのカスタム エラー ページをテストする必要があります。
5 に答える
IIS にエラーのシミュレーションが含まれているとは思いませんが、使用できるベンチマーク/ストレス テスト アプリケーションが存在します。これの唯一の欠点は、IIS が「壊れる」まで、実際に (テスト?) サーバーを実際のストレス下に置かなければならないことです。
最初に、IIS アプリケーション プールのサイズを利用可能な最小値まで下げる必要があります。
Apache の JMeterを使用することをお勧めします。ハンドルを取得して使用するのは比較的簡単です。
ダウンロードして実行したら、ストレス テストを実行するための基本的な手順を次に示します。
「スレッドグループ」を追加-すべてを機能させるもの
スレッド グループ パラメータの設定-ここでは、同時スレッド数 (つまり、ユーザー数) を設定します。
HTTP リクエストをスレッド グループに追加-これはテストステップです。
HTTP 要求パラメーターを設定します。ここでは、Web アドレス (localhost、www.yourdomain.com など) と、必要なその他の構成を指定します。
レポートの追加-レポートは、サーバーの要求と応答とともに結果を表示する方法です
テスト計画を実行して結果を表示する
最後に、テストを実行して失敗を表示したら、好みのブラウザーでサーバーを参照して、結果をライブで表示できます。
編集
複数のコンピューター/サーバーにアクセスできる場合は、分散ストレス テストを試すこともできます。チュートリアルは、彼らのサイトで入手できます。
コードから「サーバー ビジー」エラーを発生させることはできません。他の回答に示されているようにエラーコードをシミュレートできますが、「サーバービジー」エラーの全体的なポイントはコードを実行できないため、カスタムエラーページが正しく表示されるかどうかを判断することはできません-したがって、 IIS がこの種のエラーを発生させるために別のことを行うという非常に安全な仮定。
しかし、私が見る限り、500.13 エラーは ASP.NET アプリケーションではなく ASP によってスローされました。ASP.NET アプリケーションの代わりに、503 Service Unavailable エラーが表示されます。
次のコマンドで 503 ステータス コードをトリガーできます。
- IIS Management Studio を開き、[アプリケーション プール] に移動して、アプリケーション プールの [詳細設定] を開き、[キューの長さ] を 10 (最小) に変更します。
- ASP.NET アプリケーションで、への呼び出しを追加します
Thread.Sleep(50000)
。 - ここで、Web サーバーをドキドキさせ始めます。すぐに 503 Service Unavailable エラーが返されます。
フレームワークを使用して負荷をシミュレートできます。SeleniumGridが役立つ場合があります。
Visual Studio Team Systemも負荷をシミュレートできますが、無料ではありません。Visual StudioTeamSystemを使用した負荷テストをご覧
ください
これを Page_Init イベントに入れます。
protected void Page_Init(object sender, EventArgs e)
{
Response.Clear();
Response.StatusCode = 500;
Response.SubStatusCode = 13;
throw new Exception();
}
customErrors
しかし、私の知る限り、 Web.config のセクションでサブコード エラーを設定する方法はありません。ただし、Global.asx Application_Error イベントでサブコードを確認できます。
int subCode = HttpContext.Current.Response.SubStatusCode;
ロジックに従えば、IIS エラーをシミュレートできます。
これはStackOverflowに関する同様の質問です。これはあなたが達成しようとしていることと一致していますか?テストのためにIIS/.netでHttpステータスコードを偽造する