- PR -

「リソースが見つかりませんでした。」のカスタマイズ方法

1
投稿者投稿内容
せんこ
会議室デビュー日: 2004/04/26
投稿数: 18
投稿日時: 2006-08-07 19:10
こんにちは。

.Net FrameworkをインストールしているWEBサーバに対して、存在しないaspxページを
指定すると、デフォルトで
--------------------------------------------------
リソースが見つかりませんでした。

説明 : HTTP 404. 探しているリソース (または、その依存関係の 1 つ) が削除
されたか、名前が変更されたか、また一時的に使用できません。以下の URL の
スペルが正しいことを確認してください。

要求された URL: /*****.aspx
--------------------------------------------------
といったメッセージが表示されます。

このメッセージをカスタマイズするにはどのようにすればよいのか
教えていただけませんでしょうか?

通常、IISの設定でエラーページをカスタマイズする方法については
知っています。
404エラーが発生した際には、デフォルトで
C:\WINNT\help\iisHelp\common\404b.htmをカスタマイズするなど。
同じように出来れば、と思っています。

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-07 19:41
http://msdn2.microsoft.com/ja-jp/library/h0hfz6fc.aspx
ここを見るとわかると思います。
せんこ
会議室デビュー日: 2004/04/26
投稿数: 18
投稿日時: 2006-08-07 20:04
べるさん
情報ありがとうございます。

教えていただいたURLの内容を元にmachine.configの内容に以下を
追記して試したところ、

<customErrors mode="RemoteOnly" >
<error statusCode="404" redirect="C:\WINNT\help\iisHelp\common\404b.htm" />
</customErrors>

「サーバーが見つからないか、DNS エラーです。」というよく表示
されるエラー画面が表示されました。

redirectを /iishelp/common/404b.htm と指定したら、
「このページを表示する権限がありません」と表示されます。

404エラーの場合でよいので、具体的な内容をご存知でしたら教えて
いただけますでしょうか?

べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-08 00:35
引用:
<customErrors mode="RemoteOnly" >
<error statusCode="404" redirect="C:\\WINNT\\help\\iisHelp\\common\\404b.htm" />
</customErrors>

「サーバーが見つからないか、DNS エラーです。」というよく表示
されるエラー画面が表示されました。

これだとローカルのファイルをさしてしまうでしょうね。

引用:
教えていただいたURLの内容を元にmachine.configの内容に以下を
追記して試したところ、

machine.configに書くとサーバー上のすべての Web アプリケーションに適用されます。
アプリケーションのルートのWeb.configに書くとそのWEBアプリだけに適用されます。

引用:
redirectを /iishelp/common/404b.htm と指定したら、
「このページを表示する権限がありません」と表示されます。

そちらの構成がわからないのでなんともいえませんがメッセージの通りなのでしょうね。
当方環境ではそうなりません。

引用:
404エラーの場合でよいので、具体的な内容をご存知でしたら教えて
いただけますでしょうか?

カスタマイズしたいのですよね?redirectには自分で作成したエラーページを指定します。
マニュアルより具体的なことはわかりません><
せんこ
会議室デビュー日: 2004/04/26
投稿数: 18
投稿日時: 2006-08-08 11:07
べるさん、ご回答ありがとうございます。

IISHelpに対するアクセス制限が施されていた(localhostのみ許可)ため、
「このページを表示する権限がありません」が出ていたようです。
全てを許可にしたところ、

<customErrors mode="RemoteOnly" >
<error statusCode="404" redirect="/iisHelp/common/404b.htm" />
</customErrors>

で意図する動作になりました。

気になるのは、全てに対して許可してしまってもよいのか?ということです。

あと、IISのカスタムエラーの設定では、メッセージの種類にファイルを選択する
ことが可能で、C:\\\\WINNT\\\\help\\\\iisHelp\\\\common\\\\404b.htmという書き方も出来る
のですが、.Netでは不可なのでしょうか?
(http://msdn2.microsoft.com/ja-jp/library/h0hfz6fc.aspx を見る限り
出来そうにありませんが。)

ちなみにアプリケーションルートにweb.configを置くとなると全てのアプリケーション
ルートに置かなくてはならず、複数のWEBアプリが動いている関係で不可です。

とりあえず、やりたいことは出来ました。
ありがとうございました。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2006-08-08 13:28
引用:
気になるのは、全てに対して許可してしまってもよいのか?ということです。

WEBアクセスされたときに使われるユーザ(名前忘れた…)に対する読み取り権限さえあれば平気だったと思います。

引用:
あと、IISのカスタムエラーの設定では、メッセージの種類にファイルを選択する
ことが可能で、C:\WINNT\help\iisHelp\common\404b.htmという書き方も出来る
のですが、.Netでは不可なのでしょうか?
(http://msdn2.microsoft.com/ja-jp/library/h0hfz6fc.aspx を見る限り
出来そうにありませんが。)

「エラー コードに割り当てられているカスタム ページの URL です。」ですからね。
あくまでリダイレクトさせるだけですし。少なくともこの箇所の設定では無理なようですね。


引用:
ちなみにアプリケーションルートにweb.configを置くとなると全てのアプリケーション
ルートに置かなくてはならず、複数のWEBアプリが動いている関係で不可です。

つまり全てのアプリケーションに同じカスタムエラーを表示したいのですよね。
ならmachine.configでOKだと思います。
1

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