将启动更改为 OWIN 后获得 404 以获得 api 控制器结果
getting 404 for get api controller result after changing startup to OWIN
我从空 asp.net web api 应用程序开始,所有默认设置为 VS 2017。我用 httpGet 添加了一个控制器方法,结果很好。
现在我安装了 Microsoft.Owin.Host.SystemWeb
并添加了一个 OWIN Startup
class.
[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 Configuration 方法的末尾添加以下代码行:
app.UseWebApi(config);
注:此方法位于:
using Owin; //Assembly System.Web.Http.Owin
我从空 asp.net web api 应用程序开始,所有默认设置为 VS 2017。我用 httpGet 添加了一个控制器方法,结果很好。
现在我安装了 Microsoft.Owin.Host.SystemWeb
并添加了一个 OWIN Startup
class.
[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 Configuration 方法的末尾添加以下代码行:
app.UseWebApi(config);
注:此方法位于:
using Owin; //Assembly System.Web.Http.Owin