cors – 如何解决WebAPI OData Owin Ninject的处理程序映射问题

我昨天发布了这个…

https://stackoverflow.com/questions/32615769/owin-webapi-odata-v4-aspnet-identity-initialisation

如果我将启动配置方法的第一行更改为…

var config = GlobalConfiguration.Configuration ?? new HttpConfiguration();

然后我在导航到根目录时遇到此错误

The ‘DelegatingHandler’ list is invalid because the property
‘InnerHandler’ of ‘CorsMessageHandler’ is not null. Parameter name:
handlers

我发现一些信息点缀在一起,表明“HttpServer”的基本实现有一个与批处理相关的错误,而且微软已经表示他们实现了一些新的批处理框架,因此无法修复它,博客提供了这段代码样本来修复bug …

public class BatchServer : HttpServer
{
    private readonly HttpConfiguration _config;

    public BatchServer(HttpConfiguration configuration)
        : base(configuration)
    {
        _config = configuration;
    }

    protected override void Initialize()
    {
        var firstInPipeline = _config.MessageHandlers.FirstOrDefault();
        if (firstInPipeline != null && firstInPipeline.InnerHandler != null)
        {
            InnerHandler = firstInPipeline;
        }
        else
        {
            base.Initialize();
        }
    }
}

显然这似乎并没有解决我的问题.

所以,我陷入了这两个错误之间,不知道如何离开.

解决方法

我刚刚在类似的配置上遇到了同样的错误.基本上,你是在正确的道路上,但阅读了 this很好的答案,我意识到我必须使用接受HttpServer的.UseWebApi()的不同重载.

所以,Startup.cs应该是这样的:

HttpConfiguration config = GlobalConfiguration.Configuration ?? new HttpConfiguration();
config.EnableCors();
//the next two lines I had to change - instead of 'config' pass in the HttpServer
appBuilder.UseWebApi(GlobalConfiguration.DefaultServer);
appBuilder.UseNinjectWebApi(GlobalConfiguration.DefaultServer);

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....