获取 404 用于在将启动更改为 OWIN 后获取 API 控制器结果



我从 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);
    }

删除 Web 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 }
//        );
//    }
//}

现在我在访问 API 时收到 404 错误,我的 OWIN 启动代码也在调用。这是怎么回事?请建议!.

您必须在 OWIN 配置方法的末尾添加以下代码行:

app.UseWebApi(config);

注意:此方法位于:

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

最新更新