Недавно я добавил новый ApiController в мой проект ASP.NET MVC4 (у меня уже был один ApiController также в папке Controllers), называемый ServerInfoController. Я создал это с использованием шаблона CRUD; вот как это выглядит:ASP.NET Web API возвращает код 404 с недавно созданным ApiController
using System.Collections.Generic;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebFrontend.Models;
namespace WebFrontend.Controllers
{
public class ServerInfoController : ApiController
{
// GET api/serverinfo
public Dictionary<string, string> Get()
{
var settings = GlobalStaticVars.StaticCore.LoadServerSettings("Last", "Server");
if (settings != null)
{
return new Dictionary<string, string>
{
{"ServerIP", settings.Address},
{"ServerPort", settings.Port.ToString()}
};
}
return new Dictionary<string, string>
{
{"ServerIP", ""},
{"ServerPort", ""}
};
}
}
}
Однако каждый раз, когда я пытаюсь перейти к этому ресурсу в браузере, я получаю 404 ошибку. Я знаю, что мои маршруты зарегистрированы правильно, так как мой другой контроллер по-прежнему доступен в конечной точке/api.
Ниже маршрут, который настраивается в WebApiConfig.cs (это маршрут по умолчанию):
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
Вы можете показать свои маршруты для веб-api? Также, какой URL вы вызываете. – gdp
Готово. Я добавил его выше. Кроме того, URL-адрес, который я вызываю, будет похож на http: // localhost: 66555/api/serverinfo – wibarr