War*_*War 4 httphandler cors asp.net-web-api2
我昨天发布了这个...
如果我将启动配置方法的第一行更改为...
var config = GlobalConfiguration.Configuration ?? new HttpConfiguration();
Run Code Online (Sandbox Code Playgroud)
然后我在导航到根目录时遇到此错误...
'DelegatingHandler'列表无效,因为'CorsMessageHandler'的属性'InnerHandler'不为null.参数名称:处理程序
我发现一些信息点缀在一起,表明"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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
显然这似乎并没有解决我的问题.
所以,我陷入了这两个错误之间,不知道如何离开.
我刚刚在类似的配置上遇到了同样的错误.基本上,你是在正确的道路上,但阅读了这个伟大的答案,我意识到我必须使用.UseWebApi()接受的不同的重载HttpServer.
所以,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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |