我正在开发一个 ASP.NET MVC 4 应用程序。从数据库中获取信息并在网页上显示在这个阶段进展顺利。然后我决定与我的应用程序的进展并行开发一个 Web API。到目前为止一切顺利,直到我尝试使用本地主机上的 URL 对其进行测试。
当我尝试它时,我收到了 HTTP 错误 500。
http://localhost:23375/
我从 VS 2010 运行应用程序,它在我的浏览器中打开。最后,我附加了我的 API 调用,将其带到:
http://localhost:23375/api/Performance/ShowMachines
当我按下回车键时,我得到了错误。为什么会这样,我该如何解决?
以下是相关代码:
性能控制器.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using PerfMon.Models;
namespace PerfMon.Controllers
{
public class PerformanceController : ApiController
{
PerfMonDataRepository perfRep = new PerfMonDataRepository();
// GET /performance/machines
[HttpGet]
public IQueryable<Machine> ShowMachines()
{
return perfRep.GetAllMachines();
}
}
}
全球.asax.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
namespace PerfMon
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "Machines",
routeTemplate: "api/{controller}/{action}",
defaults: new {
controller = "Performance",
action = "ShowMachines"
}
);
}
}
}