我有一个简单的ASP.NET 3.5 SP1 Web窗体应用程序...我添加了System.Web.Routing DLL,我做了一个简单的路由,返回一个标准的ASP.NET页面作为"IHttpHandler".
一切都很好......除了HttpContext.Current.User为空 ???
所以,我做了一点挖掘(我在Global.asax文件中的所有事件中放置了断点).通常,这些断点会受到影响(当我导航到标准的".aspx"页面时):
的Application_BeginRequest
Application_AuthenticateRequest
Application_EndRequest
但是,当使用ASP.NET Routing时......这些事件都没有被触发.我错过了什么吗?
假设您正在使用IIS6,另一种方法是定义"通配符"扩展处理程序.将这个简单的"全部捕获"映射添加到IIS6将使其能够处理您的无扩展请求.默认情况下,.NET安装程序将".aspx"映射到aspnet_isapi.dll,这就是.aspx扩展名的工作原理.要将没有扩展名的请求映射到APS.NET引擎,您必须告诉IIS查看每个请求.
这是一篇解释过程的快速文章:
http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx
希望有助于减少您网址的"蹩脚"因素.:)
-Todd