我昨天发布了这个…
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);