Jus*_*ner 5 c# asp.net asp.net-mvc asp.net-mvc-2
我正在消隐,需要一个快速的手.谷歌让我失望了.我正在努力用ASP.NET MVC替换WCF/REST入门套件.我希望尽可能轻松地进行转换,因此我尝试创建一个匹配以下URL的路由:
http://localhost/services/MyService.svc/UserInfo
Run Code Online (Sandbox Code Playgroud)
我在Global.asax.cs中创建了路由:
routes.MapRoute(
"MyServiceDefault",
"services/MyService.svc/{action}/{id}",
new {
controller = "MyService",
action = "UserInfo",
id = UrlParameter.Optional
}
);
Run Code Online (Sandbox Code Playgroud)
我很快就意识到,由于URL .的MyService.svc一部分,请求甚至没有进入我的应用程序.
我错过了什么来强制请求传递到我的应用程序而不是由服务器作为静态资源处理?
更新
我忘了提到我还尝试将以下内容添加到Web.config无济于事:
<httpRuntime relaxedUrlToFileSystemMapping="true" />
Run Code Online (Sandbox Code Playgroud)
事实证明,搜索正确的术语组合最终会产生结果.Phil Haack实际上有一个关于这个问题的帖子:
事实证明,对于*.svc扩展,仅仅添加<httpRuntime relaxedUrlToFileSystemMapping="true" />到Web.config是不够的.
在其中一个框架Web.config文件中,有一个与*.svc关联的构建提供程序在它到达.NET MVC之前接管请求(并且由于这不是真正的WCF服务而失败).一旦你知道了,在你的应用程序的Web.config中删除构建提供程序就很容易了:
<system.web>
<compilation debug="true" targetFramework="4.0">
<buildProviders>
<remove extension=".svc"/>
</buildProviders>
...
</system.web>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |