LoginSignup
6
7

More than 5 years have passed since last update.

ASP.NETのエラーページが表示されてしまうときの対策

Last updated at Posted at 2014-08-12

URLに「.」が混ざると、ASP.NET でエラーページがでてしまう問題の解決法。

エラーページ

  1. 独自のエラーページ(自分でリダイレクトするように設定する)
  2. IISのエラーページ
  3. ASP.NETのエラーページ

ASP.NETのエラーページが出てしまうパターンと対策

URLの最後に「.」が付いている場合

  • 下記のようなページが出る

error-page-1.png

  • 対策1

relaxedUrlToFileSystemMapping=”true”に設定するこの場合、「URLが有効な Windows ファイル パスであるかの検証」が無効になるため、推奨できない(と思われる)。
URLに指定されるパラメータに様々な文字列が含まれる可能性があり、その文字列がWindowsファイルシステムと同じ規則でバリデートされると困る場合は、これを設定すると解決できるようだ。
(参考)

  • 対策2

Web.configを下記の通り変更する

変更前:<httpErrors errorMode=”Custom” existingResponse=”Auto”>
変更後:<httpErrors errorMode=”Custom” existingResponse=”Replace”>

IISが用意したレスポンスが存在した場合に
2.IISのエラーページが返されてしまうが、この対策によって必ずカスタムエラーページを返すように設定できる。

  • 対策3

relaxedUrlToFileSystemMapping=”true” と、
existingResponse=”Auto” を設定する。
(これがベストみたい。)

ちなみに、MSDNのページも、URLの最後に「.」がついていると、ASP.NETのエラーページが出でしまっている。
また、URLの最後に「%」が付く場合、400(Bad Request)エラーとなり、下記のページが表示される。

error-page-2.png

Configuring HTTP Error Responses in IIS 7 によると、カスタムエラーページを表示させることはできないようだ。
このケースは、ASP.NETに到達する前段階でのエラーのため対策ができない。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7