0

我在服务器 2000 上使用 IIS 5.1。我已经为 IIS 中的自定义错误设置了 asp.net 页面,该页面指向 C:\Inetpub\wwwroot\Custom_Error\IIS_Error.aspx。

用户输入错误密码 3 次时出现自定义错误页面。

当我使用以下 URL 从我的笔记本电脑直接访问错误页面(用于测试)时,我可以看到页面文本和文本框。

//192.168.0.10/Custom_Error/IIS_Error.aspx

但是当用户输入错误密码 3 次时,系统只显示带有文本的自定义错误页面,并且不显示 asp.net 控件。

另外,有没有办法显示用户被重定向到自定义错误页面的本地路径?举个例子;我们在名为 TestWeb 的网站下有 10 个文件夹,因此当用户访问名为 webtest3 的文件夹编号 (3) 时,自定义错误页面应在页面上显示 webtest3。

我可以在 asp.net 或 asp 经典页面上执行此操作吗?

4

2 回答 2

0

你问了两个问题。我将回答您的第二个问题,“如何获取将用户重定向到自定义错误页面的本地路径?”

这取决于您如何将用户引导至错误页面。如果您通过在 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 回答
0

我已通过为自定义错误创建一个简单的 html 页面并将其重定向到 asp.net 页面来解决此问题。

Asp.net 自定义错误页面不适用于 IIS。最好有一个html页面。

于 2012-05-16T20:47:14.447 回答