ASP.NET MVC 4 アプリケーションを開発しています。データベースから情報を取得して Web ページに表示することは、この段階ではうまくいきました。次に、アプリケーションの進行状況と並行して、Web API も開発したいと考えました。ローカル ホストで URL を使用してテストするまでは、これまでのところ問題ありませんでした。
試してみると、HTTP Error 500 が出ました。
http://localhost:23375/
VS 2010 からアプリケーションを実行すると、ブラウザで開きました。この最後に、API 呼び出しを追加して、次のようにしました。
http://localhost:23375/api/Performance/ShowMachines
Enterキーを押すと、エラーが発生します。これはなぜですか?どうすれば解決できますか?
関連するコードは次のとおりです。
PerformanceController.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();
}
}
}
Global.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"
}
);
}
}
}