Asp.net mvc 3 MVC3中的WebApi,无法命中我的API控制器(500内部错误)

Asp.net mvc 3 MVC3中的WebApi,无法命中我的API控制器(500内部错误),asp.net-mvc-3,asp.net-web-api,routes,Asp.net Mvc 3,Asp.net Web Api,Routes,我已在我的注册区域映射了以下路线: public override void RegisterArea(AreaRegistrationContext context) { if (context != null) { context.Routes.MapHttpRoute( name: "API_Default", routeTemplate: "Areas/Test

我已在我的注册区域映射了以下路线:

public override void RegisterArea(AreaRegistrationContext context)
    {
        if (context != null)
        {
            context.Routes.MapHttpRoute(
                name: "API_Default",
                routeTemplate: "Areas/Test/AIO/api/{controller}/{id}",
                defaults: new
                {
                    id = RouteParameter.Optional
                });
当我查看Global.asax文件时,我可以看到HttpRoute正在注册,并且在RouteTable.Routes中以{System.Web.Http.WebHost.Routing.HttpWebRoute}的形式列出

问题是,当我转到url时<代码>https://myRoot/Areas/Test/AIO/api/AioApi/test或
https://myRoot/Areas/Test/AIO/api/AioApi
,它给了我一个500内部服务器错误

我不确定如何查看实际的错误,当单步执行代码时,在它离开应用程序_BeginRequest后,我看不到任何东西

我的控制器代码:

public class AioApiController : ApiController
{
    // GET api/<controller>
    public IEnumerable<string> Get()
    {
        return new string[] { "value1", "value2" };
    }
公共类AioApiController:ApiController
{
//获取api/
公共IEnumerable Get()
{
返回新字符串[]{“value1”,“value2”};
}
关于为什么我不能点击API控制器有什么见解吗?我可以在相同的上下文中点击我的常规MVC控制器


非常感谢您的帮助!

我在WebApi中发现有两种路由集合:
System.Web.Routing.RouteCollection
System.Web.Http.HttpRouteCollection
。我相信(但不记得了)您需要使用后者才能使
ApiController
派生正常工作(幸运的是语法相同)。

WebAPI是否可用于MVC3?您的控制器代码只有一个方法:Get()?是的,您可以使用MVC3安装WebAPI。我的api控制器具有所有标准方法(Get、Post等)…我只粘贴了我应该点击的一个。为什么要使用https?你确定你的程序正在监听端口23,并且证书和所有设置都正确吗?为了调试,只需使用https通常更容易。我在一家公司,在那里我们使用https。https适用于所有其他方面,包括我的注册MVC控制器。一切都设置正确…我一直在使用它。