Web.Configに重大で重要な問題があります。ページのエラーを確認し、asp.net WebフォームとWeb構成で解決する必要がありますが、エラーが発生すると別のエラーが表示され、次のメッセージが表示されます。
customErrorsモードをOffまたはOnまたはRemoteOnly、
このプロパティをOffに設定しましたが、エラーを表示せずに、CustomErrorをOnに属性を設定してください。
モードをオンに設定すると、customErrorsモードを再度オンに設定してください。
構成に問題がある場合は、設定が上書きされないようにしてください。
この場合、サーバーには構成<deployment retail="true" />
アプリケーション設定を上書きし、トレース出力、カスタムエラー、およびデバッグ機能を無効にします。
値を「false」に変更します
<deployment retail="false" />
まず、CustomErrorsモードを「RemoteOnly」から「off」に設定できます<customErrors mode="Off"></customErrors>
次に、global.asaxを確認できます。カスタムエラーのdefaultRedirectと同じようにResponse.Redirectを作成できます。詳細はこちらで確認できます ASP.NET customErrors with mode = remoteOnly and global.asax handling exceptions
そして最後に、おそらくwebconfigでtwosystem.webを作成します。 configファイルには1つだけが必要です。webconfigをもう一度確認してください。 <compilation debug="true"/>
次のように、<system.web>
タグ内のどこかにcustomErrorsタグをネストしてください。
<system.web>
<customErrors mode="Off" />
</system.web>
あなたの説明から、それはすでにあなたによってそこに置かれたか、別の方法で自動的に生成された可能性が高いです。また、オンに設定して、アプリケーションプールを再起動してください。これを行うには、ブレークリターンを追加してweb.config
ファイルを変更するか、スペースキーを押すだけで、変更を加えます。ここで、customErrorsモードがOnに設定されているので、これが2回目であることを確認して再アップロードします。これで、カスタムエラーページを表示できるようになりました。
それでも問題が解決せず、IIS ManagerからWebサイトにアクセスできる場合は、[機能]ビューで.NETエラーページを編集してください。これも同じことを行い、カスタムエラーページを提供しますweb.config
ファイルがアクセスするための正しいディレクトリにあります。
デバッグ用のエラーを表示し、カスタムエラーページを表示しないようにするには、defaultRedirect
は必要ありません。これを使用するだけで、デバッグ/例外情報を出力できます。
<system.web>
<customErrors mode="On" />
</system.web>
注:On
が大文字の[〜#〜] o [〜#〜]で始まることを確認してください。 web.configを変更することにより、これは(デフォルトで)アプリプールをリサイクルし、すぐに取得されるはずです。
カスタムページに例外を表示するサンプルコードを次に示します。
最初にボタンを使用してDefault.aspxを作成します。
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Throw Error" />
ボタンクリックイベントに次のコードを追加します。
protected void Button1_Click(object sender, EventArgs e)
{
throw new Exception("Sample Exception on my Page");
}
次に、ラベル付きのErrorPage.aspxを作成します。
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
エラーページのコード:
protected void Page_Load(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (ex != null && ex.InnerException != null)
{
Label1.Text = string.Format("An error occured: {0}", ex.InnerException.Message);
}
}
最後に、web.configに次の構成を配置します。
<system.web> <customErrors mode="On" defaultRedirect="~/ErrorPage.aspx" redirectMode="ResponseRewrite" /> </system.web>
Default.aspxでコンパイルして開始します。ボタンをクリックすると、カスタムページにエラーが表示されます。
ハッピーコーディング!
オンに設定されていると表示されることはありません。 customeErrorsをoffに設定すると、詳細なエラーが表示されます。オフに設定し、この投稿に表示される実際のエラーメッセージを追加します。 404エラーのような別のメッセージが表示されないことを確信していますか?
ここでコメントしたかったのですが、コメントするのに十分なポイントがありません。エラーを生成する実際のページとweb.config全体を確認できますか?接続文字列などをぼかして、パスワードを漏らさないようにすることができます。
しかし、私が見るものでは、
あなたが言っていることから、あなたはIISローカルマシン上で高速デバッグを使用していると思います。サイトがキャッシュされていないかどうかを確認するために、IIS Expressまたはctrl + F5ページを実行しました。
カスタムエラーをオフに設定すると、デバッグメッセージが表示されます。オフの「O」は、fの小文字で大文字にする必要があります。あなたはこれを持っているように見えますが、言及する価値があります
カスタムエラーオフ-カスタムエラーを無効にすることを指定します。これにより、詳細なエラーを表示できます。
私が見ることができるものから、あなたは<customErrors mode="Off" />
ノードの最初のノードとして<system.web>
を持っていません。
推測すると、<compilation targetFramework="x.x">
ノード内にcustomErrorsノードがあります。
おそらく、アプリケーションプールは、アプリケーションが記述されている.NETフレームワークの別のバージョンに設定されています。<customErrors mode="Off" />
ノードが<system.web>
ノード内で最初であることを確認してください詳細なエラーメッセージ。
この行を削除するとうまくいきます!
<customError />
多くのホスティング会社は、実際にはweb.configファイルの設定を会社によってオーバーライドしています。通常、これらの具体的な属性は、WebサイトのWebホストのダッシュボードで設定できます。
使用している具体的なWebホスティングを教えていただければ、具体的な手順をより適切に支援できるはずです。