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控制器。一切都设置正确…我一直在使用它。