尝试访问我的某个Web API操作时,我收到了404 not found错误:
我的WebAPIConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
我有一个名为OnSourceAPIController的控制器和一个GET操作ValidateServiceRequestAuto。
我尝试去的时候收到404错误:
http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
我的第一个猜测是我遇到了某种路由错误,但我为它创建了一个mvc控制器和一个索引页,并且能够通过此路由(api / controller / action)正常浏览。内置的api / help页面甚至将/ api / OnSourceAPI / ValidateServiceRequestAuto显示为我的api调用的路由。
我也尝试过使用WebAPIRouteDebugger工具。当我使用
时,它给我一个000 404找不到的错误http://localhost/api/OnSourceAPI/ValidateServiceRequestAuto
,但实际上如果我将localhost从前面取出并只使用
,就会给我正常的路由信息api/OnSourceAPI/ValidateServiceRequestAuto as the URL...
任何指针都会受到赞赏。
答案 0 :(得分:6)
我想通了,现在觉得有点傻。
我的webapi项目在我的普通网站项目中运行,路径为... / api,所以因为我将api路由设置为api / controller / action,我真正需要使用的路径是localhost /的 API / API 强> /控制器/动作。事实证明404就在那里,因为它真的无法在那个位置找到任何东西。当计算机完全按照你告诉他们的方式行事时,我讨厌它。
答案 1 :(得分:0)