C# HttpControllerContext.Configuration在内容协商期间有时为空
我们正在设置ASP.NET 4.6.2 Web Api主机,并注意到一些请求由于以下错误而失败:C# HttpControllerContext.Configuration在内容协商期间有时为空,c#,asp.net-web-api,C#,Asp.net Web Api,我们正在设置ASP.NET 4.6.2 Web Api主机,并注意到一些请求由于以下错误而失败: HttpControllerContext.Configuration must not be null. 我一直无法重现这个问题,想问是否有人能把我引向正确的方向 这是堆栈跟踪: [0] System.InvalidOperationException "HttpControllerContext.Configuration must not be null." at System.Web
HttpControllerContext.Configuration must not be null.
我一直无法重现这个问题,想问是否有人能把我引向正确的方向
这是堆栈跟踪:
[0] System.InvalidOperationException "HttpControllerContext.Configuration must not be null."
at System.Web.Http.Results.NegotiatedContentResult`1.ApiControllerDependencyProvider.EnsureResolved()
at System.Web.Http.Results.NegotiatedContentResult`1.ApiControllerDependencyProvider.get_ContentNegotiator()
at System.Web.Http.Results.BadRequestErrorMessageResult.Execute()
at System.Web.Http.Results.BadRequestErrorMessageResult.ExecuteAsync(CancellationToken cancellationToken)
at System.Web.Http.Controllers.ApiControllerActionInvoker.d__1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.d__15.MoveNext()
[0]System.InvalidOperationException“HttpControllerContext.Configuration不能为空。”
在System.Web.Http.Results.NegotiatedContentResult`1.ApiControllerDependencyProvider.EnsurereResolved()中
在System.Web.Http.Results.NegotiatedContentResult`1.ApiControllerDependencyProvider.get_ContentCongregator()中
在System.Web.Http.Results.BadRequestErrorMessageResult.Execute()中
位于System.Web.Http.Results.BadRequestErrorMessageResult.ExecuteAsync(CancellationToken CancellationToken)
在System.Web.Http.Controllers.ApiControllerActionInvoker.d_u1.MoveNext()中
---来自引发异常的上一个位置的堆栈结束跟踪---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)
在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)中
在System.Web.Http.Dispatcher.HttpControllerDispatcher.d_u15.MoveNext()中
在向BadRequestErrorMessageResult添加头时,我的测试中也发生了类似的错误。修复程序只需要初始化控制器的配置。 …然后初始化请求 所以我的测试设置看起来像
public class FooControllerTest
{
private FooController _sut;
[Setup]
public void Setup()
{
_sut = new FooController();
_sut.Configuration = new System.Web.Http.HttpConfiguration();
_sut.Request = new System.Net.Http.HttpRequestMessage();
}
}
希望这会有所帮助。您的代码需要等待整个响应返回。使用异步方法通常在获取所有数据之前开始处理,这可能会导致空值。对我来说,这会返回InternalServerError。当我调试时,它工作正常。