我们正在设置 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.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()
最佳答案
将 header 添加到 BadRequestErrorMessageResult 时,我的测试中出现了类似的错误。该修复仅需要初始化 Controller 的配置。 ...然后初始化请求。
所以我的测试设置最终看起来像这样
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();
}
}
希望有帮助。
关于c# - 内容协商期间 HttpControllerContext.Configuration 有时为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55480264/