получение 404 для получения результата контроллера API после изменения запуска на OWIN - PullRequest
0 голосов
/ 11 января 2019

Я запускаю приложение Empty asp.net web api со всеми настройками по умолчанию для VS 2017. Я добавил один метод контроллера с httpGet, и результат в порядке.

Теперь я установил Microsoft.Owin.Host.SystemWeb и добавил OWIN Startup класс.

[assembly: OwinStartup(typeof(WebApp1.Startup))]

namespace WebApp1
{
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        var config = new HttpConfiguration();
        // Web API routes
        config.MapHttpAttributeRoutes();
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
}
}

После этого я комментирую global.asax код, так как считаю, что он мне не нужен,

protected void Application_Start()
    {
        //GlobalConfiguration.Configure(WebApiConfig.Register);
    }

Удаление приведенного ниже кода для маршрутов веб-API

 //public static class WebApiConfig
//{
//    public static void Register(HttpConfiguration config)
//    {
//        // Web API configuration and services

//        // Web API routes
//        config.MapHttpAttributeRoutes();

//        config.Routes.MapHttpRoute(
//            name: "DefaultApi",
//            routeTemplate: "api/{controller}/{id}",
//            defaults: new { id = RouteParameter.Optional }
//        );
//    }
//}

Теперь я получаю ошибку 404 при доступе к API, мой код запуска OWIN также вызывает. Что здесь не так? пожалуйста, предложите!

1 Ответ

0 голосов
/ 11 января 2019

Вы должны добавить следующую строку кода в конце вашего OWIN Конфигурация метод:

app.UseWebApi(config);

Примечание: этот метод находится в:

using Owin; //Assembly System.Web.Http.Owin
...