owin 地图扩展 return 404
owin map extension return 404
我试图为我的 web API 操作实现一个中间件,所以我发现 Map
这是 IAppBuilder
接口的扩展方法。我检查了 katana 源代码 [1],此方法 return 和 IAppBuilder
与 Use
方法相同。
但在 owin/WebAPI 我不知道为什么控制器在映射后没有解析?
调用下一个中间件后很清楚,owin应该运行下一个中间件,但映射后似乎没有下一个中间件,我的错误在哪里?
启动:
public void Configuration(IAppBuilder app)
{
ConfigureOAuth(app);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app = app.Map("/api", application => {
ConfigurationAPI(application);
});
app.Use<ExceptionMiddleware>();
//app.UseWebApi(config);
}
public void ConfigurationAPI(IAppBuilder app)
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
FilterConfig.RegisterHttpFilters(GlobalConfiguration.Configuration.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
HttpConfiguration config = new HttpConfiguration();
WebApiConfig.Register(config);
SimpleInjectorBootstrapper.Initialize();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(SharedLayer.Core.CoreObject.container));
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(SharedLayer.Core.CoreObject.container);
app = app.Use<ExceptionMiddleware>();
app = app.Use<AuthenticateMiddleware>();
app.UseWebApi(config);
}
但是当我添加以下 运行 块时,所有请求 return "test"!!
app.Run(async context =>
{
await context.Response.WriteAsync("test");
});
app.UseWebApi(config);
您的路线定义是否包含 /api
路段? Map 将其从管道 (ConfigurationAPI) 分支的路径中删除。
我试图为我的 web API 操作实现一个中间件,所以我发现 Map
这是 IAppBuilder
接口的扩展方法。我检查了 katana 源代码 [1],此方法 return 和 IAppBuilder
与 Use
方法相同。
但在 owin/WebAPI 我不知道为什么控制器在映射后没有解析?
调用下一个中间件后很清楚,owin应该运行下一个中间件,但映射后似乎没有下一个中间件,我的错误在哪里?
启动:
public void Configuration(IAppBuilder app)
{
ConfigureOAuth(app);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
app = app.Map("/api", application => {
ConfigurationAPI(application);
});
app.Use<ExceptionMiddleware>();
//app.UseWebApi(config);
}
public void ConfigurationAPI(IAppBuilder app)
{
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
FilterConfig.RegisterHttpFilters(GlobalConfiguration.Configuration.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
HttpConfiguration config = new HttpConfiguration();
WebApiConfig.Register(config);
SimpleInjectorBootstrapper.Initialize();
DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(SharedLayer.Core.CoreObject.container));
config.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(SharedLayer.Core.CoreObject.container);
app = app.Use<ExceptionMiddleware>();
app = app.Use<AuthenticateMiddleware>();
app.UseWebApi(config);
}
但是当我添加以下 运行 块时,所有请求 return "test"!!
app.Run(async context =>
{
await context.Response.WriteAsync("test");
});
app.UseWebApi(config);
您的路线定义是否包含 /api
路段? Map 将其从管道 (ConfigurationAPI) 分支的路径中删除。