【发布时间】:2011-06-01 00:19:54
【问题描述】:
我在 global.asax 的 Application_Error 方法中有一个自定义错误处理程序,当发生错误时,我使用以下代码将用户转移到错误页面:
Server.Transfer("/Error/");
但是,在没有指定实际页面名称的情况下,上面的代码会因“Error execution child request for /Error/”异常而中断。
所以如果我使用Server.Transfer("/Error/Default.aspx"),它可以正常工作,没有任何问题。
同样使用Response.Redirect("/Error/") 也可以正常工作,但是我们希望继续使用 Server.Transfer 以在显示错误页面时保留地址栏中显示的 URL,以便用户可以简单地刷新页面以重试访问原始的违规 URL。
如果有人可以评论如何在不指定实际 aspx 页面名称的情况下使 Server.Transfer 方法正常工作,我们将不胜感激。
非常感谢。
【问题讨论】:
-
没有特定页面的 Server.Transfer 是否可以在常规页面上工作?如果 Server.Transfer 隐藏了页面名称,为什么在传输中包含它会出现问题?
-
我知道你的意思,真的在代码中包含页面名称不会影响最终用户如何看待它,我只是想寻求一点完美,因为我们所有的路径都被声明为常量,并认为 Server.Transfer 可以遵循这里的约定。我想我只需要为此实例做一个例外并包含完整路径。谢谢。
标签: c# .net asp.net global-asax server.transfer