我有一个自定义的重写模块,当特定的查询字符串参数通过时,我需要能够调用server.transfer而不是response.redirect由于保存软件和跟踪Server.Transfer不会触发应用程序生命周期事件
在RewriteModule的Init事件我注册的事件:
的BeginRequest 的PreRequestHandlerExecute ReleaseRequestState
当一个Response.Redirect的被称为ReleaseRequestState事件实际上是调用和重写模块并发症ETE和新的控制URL的设置
当Server.Transfer方法被调用,然后不叫ReleaseRequestState事件和友好的URL没有设置
我想我明白一个Response.Redirect的和服务器之间的不同.Transfer,但我不明白为什么事件实际上不会被调用 - Session.End或Session.Abandon事件被调用,并且这个事件永远不会被解雇?或者是完全不同的东西在这里发生
感谢
保罗
嗨感谢回去我 - 如果没有新的请求,那么它肯定会再继续拨打PostReleaseState eventrather不仅仅是查杀要求? – stack72 2010-07-26 12:54:16
似乎应该。除非管道内部发生了一些魔法,才能知道国家是否被收购。如果没有获得状态(如.css请求),也许框架不会调用ReleaseRequestState。只是猜测 - 我不知道这个事实。 – PatrickSteele 2010-07-26 13:08:36