Ami*_*mit 29 asp.net server.transfer c#-2.0
我有一个HttpModuleC#2.0来处理抛出的异常.每当抛出异常时,都会调用带有一些查询字符串的错误页面(aspx).它完成了Server.Transfer().
但是当控件尝试执行时Server.Transfer(),会抛出以下异常:
执行[pagename] .aspx的子请求时出错.
而Request.Redirect()正常工作.
我尝试EnableViewStateMac="false"在传递请求的页面的Page指令中设置.仍然存在问题.
这是我试过的代码:
string errorPage = "errorpage.aspx?id=" + someErrorId
HttpContext.Current.Server.Transfer(errorPage,true);
Run Code Online (Sandbox Code Playgroud)
知道如何解决这个问题吗?
Ami*_*mit 18
我找到了Server.Transfer()的替代品
我用了
HttpContext.Current.RewritePath("somefile.aspx");
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.
Kar*_*arl 10
我在OnPreRequestHandlerExecute事件中挂钩到请求管道,发现我无法使用Server.Transfer,因为它抛出了与您执行子请求相同的错误.
使用HttpContext.Current.RewritePath不起作用,因为它似乎被忽略,我没有被重定向到任何地方.
如果您正在使用IIS 7及更高版本,则可以使用Server.TransferRequest代替我这样做.
这个答案涵盖了两种方法之间的差异:在ASP.Net中的TransferRequest vs Transfer
我的修复是不同的:
一个在线查询产生了这篇Microsoft知识库文章,该文章指出解决方案是使用Response.Redirect而不是Server.Transfer.
我更改了命令并获得了更准确的" 404错误消息 "而不是神秘的" 执行子请求错误 "消息.
这导致我检查重定向字符串,我注意到我的路径已关闭.
我将传输字符串从"ErrorPage.aspx"修复为"../ErrorPage.aspx"(注意路径更改),Server.Transfer工作得很好.
| 归档时间: |
|
| 查看次数: |
74196 次 |
| 最近记录: |