.NET Core API请求与支持的文件类型不匹配

时间:2017-03-17 07:20:32

标签: asp.net-core asp.net-core-mvc .net-core

我只是想确保在这里没有问题。是否有人知道导致

的原因
2017-03-17 07:59:17.5838|1|Microsoft.AspNetCore.Hosting.Internal.WebHost|INFO|Request starting HTTP/1.1 GET http://192.168.20.57:8081/hardware/configuration/active application/json  
2017-03-17 07:59:17.5868|4|Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware|DEBUG|The request path /hardware/configuration/active does not match a supported file type

我只通过Kestrel公开Web API(没有IISIntegration)。

请求标头包含

GET /hardware/configuration/active HTTP/1.1
Accept: application/json, text/plain, */*
Content-Type: application/json

定义 [Produces("application/json")] 明确地在我的控制器中没有效果。

2 个答案:

答案 0 :(得分:0)

请求由kestrel(这是您的第一个日志行)进入后。

它首先通过中间件管道,直到它到达WebApi中间件。

正如您在第二个日志记录行中看到的那样:Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware。它到达StaticFileMiddleware而不是WebApi中间件。

staticFileHandler可能会在wwwroot文件夹中找到一个文件,从而返回此消息?或者甚至在它尝试检查文件系统之前,它会检查它是否是允许/已知的文件扩展名,但事实并非如此,因此这是第二条日志消息。

答案 1 :(得分:0)

将StaticFileOptions.ServeUnknownFileTypes设置为true:

        app.UseStaticFiles(new StaticFileOptions()
        {
            FileProvider = new PhysicalFileProvider("mypath"),
            ServeUnknownFileTypes = true // <<<<<<
        });

或找出可以扩展未知类型的位置(请在后一种情况下让我知道)。