- PR -

ASP.NETのエラーページをIISで定義した物に

1
投稿者投稿内容
kagura
常連さん
会議室デビュー日: 2003/03/26
投稿数: 27
投稿日時: 2003-03-26 14:22
現在エラーが発生した場合、ASP.NETが生成するエラーページ

'/hoehoe' アプリケーションでサーバー エラーが発生しました。
-------------------------------------------------------------------
ランタイム エラー
(略)

が出力されていますが、
これをIISで設定したエラーページを表示するのにはどうすれば良いのでしょうか?
Releaseビルドしても
Web.configにて
<customErrors mode="RemoteOnly" />
としてみましたが駄目でした。

<error statusCode="〜" redirect="〜">で全部指定しなければならないのでしょうか?

追記です。
IIS5.0でVB.NETです。

[ メッセージ編集済み 編集者: kagura 編集日時 2003-03-26 14:33 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2003-03-27 00:29
それは、リモートクライアントでもASP.NETのエラー詳細が表示されてしまうということですか?

ModeをOnにしたらどうでしょう。
kagura
常連さん
会議室デビュー日: 2003/03/26
投稿数: 27
投稿日時: 2003-03-27 10:07
返信ありがとうございます。

<customErrors mode="On" /> を設定して、詳細表示をしたくないと言う訳では無く
エラーが発生した時にブラウザに表示される画面を設定したページをIIS上で
設定したいのです。

ASP.NETのエラー画面の設定をIISの管理画面上から制御する方法を
色々と探し回ったのですが、どうにもその方法が判らないのです。

DaikiRyuto
大ベテラン
会議室デビュー日: 2002/07/23
投稿数: 200
投稿日時: 2003-03-27 11:40
IISでエラーページの設定をしたいのなら、インターネット サービス マネージャを開いて、[(規定の)Webサイト]のプロパティから[カスタムエラー]タブを選んで、対応するエラーの箇所(500;100とか)を変更すればよいと思います。
ただしIEの場合はブラウザが勝手にエラー表示をすることも。
その場合を考慮するなら、Response.Statusを200とかにすれば良かったような(ASPの時代の話)。

外してます?
いまいち何をおやりになりたいのか見えません。
nsfj
会議室デビュー日: 2002/08/09
投稿数: 12
投稿日時: 2003-03-27 11:50
返答になっているかどうか分かりませんが。

エラーをCatchして無理矢理以下のようなレスポンスを返しては?
Response.StatusCode = 404  ←IISのHTTPエラーコード
Response.End()

アプリ全体に適用するなら個別にCatchするのではなく
Global.asaxのApplication_Errorに書けば良いかと。
kagura
常連さん
会議室デビュー日: 2003/03/26
投稿数: 27
投稿日時: 2003-03-27 12:12
DaikiRyutoさん、nsfjさん返信ありがとうございます。

「IISで設定したエラーページ(500.html等)をASP.NETでエラーが発生した時に表示する」
と言う事をしたかったのです。
#説明下手ですんまんせん。

nsfjさんが提示してくれた方法で試したところ、
IISで設定したページが表示されるようになりました。
が、この状態ですといかなるエラーが発生した場合でも
問答無用で指定したエラーコードに対応するIISで設定したページが出てしまいます。
と、言ってもApplication_Errorに来る場合と言うのは基本的に
500(Internal Serve Error)で構わない様な気もするので
これで行きます。

返信してくださったみなさんありがとうございました。
1

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