我正在基于专门支持XML的规范在ASP.NET Core 2.1中实现Web服务。因此,内容协商过程必须返回XML文档或返回错误。不幸的是,ASP.NET Core 2.1默认情况下支持JSON,并且默认情况下,如果使用Accept:application / json进行请求,则内容协商过程始终会成功。

有谁知道是否可以配置ASP.NET Core项目,以便在设置了XML以外的任何其他媒体类型的情况下使内容协商过程抛出错误?

最佳答案

对不起,我迟到了。这对我有用:

        services.AddMvc(options =>
        {
            options.OutputFormatters.RemoveType(typeof(JsonOutputFormatter));
            options.InputFormatters.RemoveType(typeof(JsonInputFormatter));
            options.ReturnHttpNotAcceptable = true;
        })
        .AddXmlSerializerFormatters()
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

关于c# - 内容协商:如何删除JSON作为受支持的格式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52507339/

10-09 00:34