首先,我已经阅读了尽可能多的关于这个主题的文章,并安装了几个“路由调试”插件。我对 Java/Spring 更熟悉,所以我真的不知道如何使用 vs 2012 调试这个东西。(无论如何,我不能让 IISExpress 打印任何调试,更不用说我习惯使用 Spring/Tomcat 的那种调试输出.)
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Legal",
action = "Index",
id = UrlParameter.Optional }
);
}
}
现在,我可以通过默认控制器访问索引页面。但是,我正在尝试基于以下控制器访问 URL /WebApi/Metadata/:
[BreezeController]
public class WebApiController : ApiController {
private readonly EFContextProvider<BankruptcyDbContext> _contextProvider =
new EFContextProvider<BankruptcyDbContext>();
[HttpGet]
public string Metadata() {
return _contextProvider.Metadata();
}
}
“路由调试器”说我对 /WebApi/Metadata、/WebApi/Metadata/、/WebApi/Metadata/0 等的请求应该“匹配”,但我得到的只是 404。
Edit1:我终于找到了跟踪日志并获得了更多详细信息:
The controller for path &#39;/WebApi/Metadata&#39; was not found or does not implement IController