【问题标题】:rendering asp.net controls on IIS在 IIS 上呈现 asp.net 控件
【发布时间】:2012-05-10 10:59:38
【问题描述】:

我在服务器 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 经典页面上做吗?

【问题讨论】:

  • 根据 IP 地址,您共享的链接在您的计算机上是本地的,如果您要添加它来展示您所看到的内容,您应该将图片/帖子附加到屏幕截图。
  • ip地址是为了显示文件所在的位置,不用于演示。
  • 你问了两个问题。以后,请考虑单独询问。此外,如果您在此处发布一些代码示例,它可能会有所帮助。我已经在下面回答了你的第二个问题,但是你第一个关于 asp.net 控件的问题如果不看代码是什么样子就很难回答
  • 我已通过为自定义错误创建一个简单的 html 页面并将其重定向到 asp.net 页面来解决此问题。 Asp.net 自定义错误页面不适用于 IIS。

标签: asp.net vb.net security iis


【解决方案1】:

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

这取决于您如何将用户引导至错误页面。如果您通过在 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,您可以通过多种方式完成此操作。

通常,网络浏览器会向网络服务器发送他们刚刚来自的页面的地址,但一些用户(和一些防火墙)会禁用此功能。当数据可用时,您通常可以通过调用Request.ServerVariables["HTTP_REFERER"];获取。

但是,如果您想确保获得数据,请考虑在将用户重定向到错误页面之前保存发生错误的页面的 URL,如下所示:

if (error_condition) 
{
    Session["error_url"] = System.Web.HttpContext.Current.Request.Url.ToString();
    Response.Redirect(error_page);
}

【讨论】:

  • 您好,我正在尝试在 asp 经典中进行操作,因为 asp.net 页面未显示服务器控件。我试过这个命令 但它什么也没做。即使是简单的 response.write 命令也不会写任何东西。
  • 您确实将 asp.net 指定为问题标签。无论如何,如果您提供一些示例代码,我们可能会更好地提供帮助。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2013-02-13
    • 1970-01-01
    • 2019-06-26
    • 2019-03-20
    相关资源
    最近更新 更多