我在IIS7上运行的ASP.NET 3.5应用程序中使用Context.RewritePath().
我正在应用程序BeginRequest事件和一切工作文件.
/ sports的请求正确地重写为default.aspx?id = 1,依此类推.
问题是在我的IIS日志中,我看到/Default.aspx?id=1的GET请求,而不是/ sports.
这种代码在IIS6下完美工作.
使用Microsoft Rewrite模块不是一个选项,因为必须实现一些业务逻辑.
谢谢.
编辑:
似乎我的处理程序太早了,但如果我将逻辑移动到一个更晚的事件,而不是整个重写的东西不起作用(现在为时已晚,StaticFileHandler接收到我的请求).
问我周围的人,不知道没有人有这个问题吗?
编辑:
哎呀!这是我在IIS论坛上发现的:
“这是因为在集成模式下,IIS和asp.net共享一个通用管道,而现在可以看到IIS中的RewritePath,而在IIS6中,IIS甚至没有被IIS看到 – 您可以通过使用经典模式来解决这个问题. IIS6“.
最后更新:请查看my answer below,在生产环境超过一年后,我已经更新了结果.