ASP.NET MVC 2问题 – Dot in Route
我正在消隐,需要一个快速的手。 谷歌让我失望了。 我正在努力用ASP.NET MVC替换WCF / REST入门套件。 我希望尽可能轻松地进行转换,因此我尝试创建一个匹配以下URL的路由:
http://localhost/services/MyService.svc/UserInfo
我在Global.asax.cs中创建了路由:
routes.MapRoute( "MyServiceDefault", "services/MyService.svc/{action}/{id}", new { controller = "MyService", action = "UserInfo", id = UrlParameter.Optional } );
我很快就意识到这个请求甚至没有通过我的应用程序.
在URL的MyService.svc
部分。
我错过了什么来强制请求传递到我的应用程序而不是由服务器作为静态资源处理?
更新
我忘了提到我还尝试将以下内容添加到Web.config无济于事:
事实certificate,搜索正确的术语组合最终会产生结果。 Phil Haack实际上有一个关于这个问题的post:
用路由覆盖.svc请求
事实certificate,对于* .svc扩展,只需将
到Web.config是不够的。
在其中一个框架Web.config文件中,有一个与* .svc关联的构建提供程序在它到达.NET MVC之前接管请求(并且由于这不是真正的WCF服务而失败)。 一旦你知道,在你的应用程序的Web.config中删除构建提供程序就很容易了:
...
看看RouteCollection.RouteExistingFiles属性。 默认情况下,此值设置为false。 可能是您的服务位于项目的“服务”路径下,这导致了问题。
本文介绍如何使用asp.net mvc应用程序的不同扩展,并仍然使它们路由到.NET框架。 特别注意从一开始的部分
This is done using a script named registermvc.wsf.