私はこのシナリオを持っています:
ユーザーが私のサイトにアクセスしてリンクをたどりますが、もう存在しません。カスタムエラーページにリダイレクトする必要があります。 (それは動作します)
ユーザーがエラーをスローする何かをした場合、スタックトレースと実際のエラーページが表示されます。
これは私の現在のWeb.configです。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<system.web>
<customErrors>
<error statusCode="404" redirect="/errors/404.htm" />
</customErrors>
<compilation debug="true" strict="false" explicit="true" />
</system.web>
</configuration>
この構成では、404は適切なサイトにリダイレクトされますが、HTTP500は次のように表示されます。
'/'アプリケーションのサーバーエラー
説明:サーバーでアプリケーションエラーが発生しました。このアプリケーションの現在のカスタムエラー設定では、アプリケーションエラーの詳細をリモートで表示できません(セキュリティ上の理由から)。ただし、ローカルサーバーマシンで実行されているブラウザで表示することはできます。
詳細:この特定のエラーメッセージの詳細をリモートマシンで表示できるようにするには、現在のWebアプリケーションのルートディレクトリにある「web [.config」構成ファイル内にタグを作成してください。このタグでは、「mode」属性を「Off」に設定する必要があります。
[...]
しかし、この場合、スタックトレースを表示したいと思います。
これどうやってするの?
注: LinuxではMono <-FastCGI-> Lighttpd構造を使用しています。
Ray Van Halens Answerは正しいですが、これは実際の問題ではありませんでした。
スタックトレースが表示されない理由は、mono自体のバグです。スタックトレースが支払われる独自のエラーページを作成する方法は他にありません。
次のweb.configエントリでは、見つからない(404)条件により、ユーザーがPageNotFound.aspxに送信されます。
Mode = "Off"を使用すると、すべてのユーザー(ローカルユーザーとリモートユーザー)にエラーの詳細が表示されます。
<customErrors mode="Off">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>
Mode = "RemoteOnly"を使用すると、ローカルユーザーにスタックトレースとコンパイルの詳細を含む詳細なエラーページが表示されます。 GeneralError.aspxページが表示されるリモートユーザー
<customErrors mode="RemoteOnly" defaultRedirect="~/errorPages/GeneralError.aspx">
<error statusCode="404" redirect="~/errorPages/PageNotFound.aspx" />
</customErrors>