2010-11-19 83 views
0

我试图运行(在try块,没有赶上,但最后一)如果server.execute的子项调用Server.Transfer或handler.ProcessRequest或Response.Redirect,会发生什么情况?

HttpContext.Current.Server.Execute(child1, tw, true); 

那里的孩子页面尝试运行下列之一:

context.Response.Redirect(child2.uri.ToString()); 
handler.ProcessRequest(context); //context has had items added to update querystring 
context.Server.Transfer(child2.uri.ToString()); 

我可以期待控制永远返回到我的原始页面?我想我可能 - 一旦代码达到(例如)Server.Transfer,我发现自己回到我的原始父页面在我的finally块(但我的Server.Execute已被跳过后的任何代码)。

作为一个说明,第一个子页面正常工作,如果我只是重定向到它,但然后我必须通过cookie跨越登录障碍(我试图绕过Server.Execute)。

这些嵌套执行和传输和重定向的预期行为是什么?

回答

0

回答我自己的问题:

是的。一旦孩子请求完成处理,执行将最终取回控制权 - Server.Transfer的情况将转移子请求,但不转移父项。

相关问题