0

サーバー2000でIIS5.1を使用しています。C:\ Inetpub \ wwwroot \ Custom_Error\IIS_Error.aspxに送信するIISのカスタムエラーのasp.netページを設定しました。

ユーザーが間違ったパスワードを3回入力すると、カスタムエラーページが表示されます。

次のURLを使用してラップトップから直接(テストのために)エラーページにアクセスすると、ページのテキストとテキストボックスが表示されます。

//192.168.0.10/Custom_Error/IIS_Error.aspx

ただし、ユーザーが間違ったパスワードを3回入力すると、システムはテキストのみのカスタムエラーページを表示し、asp.netコントロールを表示しません。

また、ユーザーがカスタムエラーページにリダイレクトされた場所からローカルパスを表示する方法はありますか?例として; TestWebというWebサイトの下に10個のフォルダーがあるため、ユーザーがwebtest3というフォルダー番号(3)にアクセスすると、カスタムエラーページにwebtest3が表示されます。

asp.netまたはaspクラシックページのいずれかでそれを行うことはできますか?

4

2 に答える 2

0

カスタムエラー用の単純なhtmlページを作成し、それをasp.netページにリダイレクトすることで、この問題を修正しました。

Asp.netカスタムエラーページがIISで正しく機能しません。代わりにhtmlページを用意することをお勧めします。

于 2012-05-16T20:47:14.447 に答える
0

あなたは2つの質問をしました。2番目の質問「ユーザーがカスタムエラーページにリダイレクトされたローカルパスを取得するにはどうすればよいですか?」に答えます。

これは、ユーザーをエラーページに誘導する方法によって異なります。global.asaxでキャッチされなかった例外を処理して、ユーザーをカスタムエラーページに誘導する場合は、次のように記述できます。

protected void Application_Error(object sender, EventArgs e)
{
    string url = System.Web.HttpContext.Current.Request.Url.ToString();
    Exception ex = Context.Server.GetLastError();
    // do something with url and exception data
}

ユーザーを手動でエラーページにリダイレクトする場合、たとえば、を使用する場合、Response.Redirectこれを実現する方法はいくつかあります。

通常、Webブラウザは元のページのアドレスをWebサーバーに送信しますが、一部のユーザー(および一部のファイアウォール)はこの機能を無効にします。データが利用可能になったら、通常はを呼び出すことでデータを取得できますRequest.ServerVariables["HTTP_REFERER"];

ただし、データを確実に取得したい場合は、次のようにユーザーをエラーページにリダイレクトする直前に、エラーが発生したページのURLを保存することを検討してください。

if (error_condition) 
{
    Session["error_url"] = System.Web.HttpContext.Current.Request.Url.ToString();
    Response.Redirect(error_page);
}
于 2012-05-10T14:47:43.533 に答える