未找到Web API路由404

Jos*_*ade 4 asp.net-mvc-routing asp.net-web-api

尝试访问我的一个Web API操作时,我收到404未找到错误:

我有我的WebAPIConfig:

config.Routes.MapHttpRoute(
      name: "DefaultApi",
      routeTemplate: "api/{controller}/{action}/{id}",
      defaults: new { id = RouteParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

我有一个名为OnSourceAPIController的控制器和一个GET操作ValidateServiceRequestAuto.

我尝试去的时候收到404错误:

http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
Run Code Online (Sandbox Code Playgroud)

我的第一个猜测是我遇到了某种路由错误,但我为它创建了一个mvc控制器和一个索引页,并且能够通过这种路由(api/controller/action)正常浏览.内置的api/help页面甚至将/ api/OnSourceAPI/ValidateServiceRequestAuto显示为我的api调用的路由.

我也尝试过使用WebAPIRouteDebugger工具.当我使用它时,它给我一个000 404找不到的错误

http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
Run Code Online (Sandbox Code Playgroud)

,但实际上给我正常的路线信息,如果我把localhost从前面拿走并且只是使用

api/OnSourceAPI/ValidateServiceRequestAuto as the URL...
Run Code Online (Sandbox Code Playgroud)

任何指针将不胜感激.

Jos*_*ade 6

我想通了,现在觉得有点傻.

我的webapi项目在我的普通网站项目中运行,路径为.../api,所以因为我将api路由设置为api/controller/action,我真正需要使用的路径是localhost/api/api /控制器/动作.事实证明,404就在那里,因为它确实找不到该位置的任何东西.当计算机完全按照你告诉他们的方式行事时,我讨厌它.