May*_*aya 9 .net c# asp.net server.transfer global-asax
我在global.asax的Application_Error方法中有一个自定义错误处理程序,当发生错误时我使用以下代码将用户转移到错误页面:
Server.Transfer("/Error/");
Run Code Online (Sandbox Code Playgroud)
但是,如果没有指定实际的页面名称,则上面的代码会出现" 执行/ Error /的子请求错误 "异常.
因此,如果我使用Server.Transfer("/Error/Default.aspx")它工作正常没有问题.
同样使用也可以Response.Redirect("/Error/")正常工作,但是我们希望继续使用Server.Transfer在显示错误页面时保留地址栏中显示的URL,这样用户只需刷新页面即可重试访问原始违规URL.
如果有人可以评论如何使Server.Transfer方法工作而不指定实际的aspx页面名称,将不胜感激.
非常感谢.
And*_*ber 14
Server.Transfer需要实际的虚拟路径到资源,这将提供所需的输出.它没有通过IIS来查找网站的默认文档是什么,所以它不知道"/错误/"是什么意思,除非这是一个实际的文件名.
Response.Redirect 之所以有效,是因为它将"移动"结果发送到具有相对URL(/ Error /)的浏览器,当浏览器发出/ Error /的新请求时,IIS首先处理它,并应用默认文档设置.
| 归档时间: |
|
| 查看次数: |
4990 次 |
| 最近记录: |