警告:Microsoft.AspNetCore.Mvc.Infrastructure.DefaultOutputFormatterSelector 1 找不到内容类型“”的输出格式化程序以编写响应。
This blog post显示了当您不使用任何格式化程序时会发生什么,但是我遇到类似的错误,我认为我需要对解决该问题的方法有更好的了解。
例如,如果您将dotnet new mvc
用于AddMvc()
中的AddMvcCore()
更改为Startup.cs
,则会在运行时看到错误。
这是预期的,因为没有格式化程序。 我不明白的是,我可以在请求期间同时提供Content-Type和application/json
的Accept标头,但仍然会收到“找不到内容类型”的输出格式化程序”。这是我的主要问题,为什么我的内容类型会消失?
我不想弄乱这里的水,但是我正在使用ProblemDetails middleware来捕获异常,然后用500响应,如果我的用户要求输入text / csv,则我收到406 Not Acceptable,如果他们要求对于application / json,他们会收到500 Internal Server Error。我认为这是因为MVC无论出于何种原因都无法响应CSV,即使我确实有用于CSV输入和输出的格式化程序,也以某种方式擦除了内容类型。因此,我的问题。