【发布时间】:2011-01-13 12:42:47
【问题描述】:
我自己路由所有请求。我写的模式如下:
RouteTable.Routes.Add(new Route("{*all}", new URLRouter()));
但是当对 www.example.com/styles/site.css 的请求到达时,它并没有被 URLRouter 处理程序捕获。
谢谢。
【问题讨论】:
标签: c# asp.net azure url-routing
我自己路由所有请求。我写的模式如下:
RouteTable.Routes.Add(new Route("{*all}", new URLRouter()));
但是当对 www.example.com/styles/site.css 的请求到达时,它并没有被 URLRouter 处理程序捕获。
谢谢。
【问题讨论】:
标签: c# asp.net azure url-routing
安装的是什么 IIS 版本?看起来静态文件请求甚至没有到达 ASP.NET ISAPI 过滤器。这是 IIS6 和 IIS7 经典模式应用程序池中的默认行为。
更新:在 Web.config(模块部分)中设置 runAllManagedModulesForAllRequests="true"
【讨论】:
URL Rewrite模块实现静态文件路由:msdn.microsoft.com/en-us/library/dd573358.aspx
我已经解决了这个问题。问题似乎是所有请求都传递给了我的 URLRouter 处理程序,但是对静态内容(例如样式/site.css)的请求不是由“{*all}”中的 url-parameter-variable “all”收集的,并且全部都是包含 null,虽然奇怪的是,这个请求包含在 requestContext.HttpContext.Request.Url 中。所以,我使用 requestContext.HttpContext.Request.Url 而不是 url-parameter-variable “all”。
【讨论】: