【问题标题】:owin map extension return 404owin 地图扩展返回 404
【发布时间】:2017-12-24 14:19:31
【问题描述】:

我试图为我的 Web API 操作实现一个中间件,所以我发现 MapIAppBuilder inerface 的扩展方法。我检查了 katana 源代码 [1],此方法返回与 Use 方法相同的 IAppBuilder

但在 owin/WebAPI 中,我不知道为什么控制器在映射后无法解析?

调用next中间件后很清楚,owin应该运行next中间件,但是映射后似乎没有next中间件,我的错误在哪里?

启动:

        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);

        }

但是当我添加以下运行块时,所有请求都返回“test”!!

        app.Run(async context =>
        {
            await context.Response.WriteAsync("test");
        });
        app.UseWebApi(config);

【问题讨论】:

    标签: asp.net-web-api owin katana


    【解决方案1】:

    您的路线定义是否包含/api 段? Map 会从它的管道分支 (ConfigurationAPI) 的路径中删除它。

    【讨论】:

    • 你读过我的代码吗?完全没问题,并且 owin 运行代码直到 app = app.Use&lt;AuthenticateMiddleware&gt;(); 但在那之后,似乎 owin 无法运行 UseWebApi();
    • tnx 天哪,我不明白你的提示,我在控制器中添加了路由前缀并从路由定义中删除了 /api 段,问题解决了。谢谢你:)
    猜你喜欢
    • 2015-08-14
    • 2015-10-28
    • 2015-06-12
    • 1970-01-01
    • 1970-01-01
    • 2019-07-20
    • 2014-09-11
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多