应用程序已完成,没有读取带有NGiNX的Kestrel,.NET Core中的整个请求主体错误

时间:2019-01-16 14:27:35

标签: nginx asp.net-core kestrel

我有一个api端点someroute / {someid},它接受​​多部分/八位位组发布,以便我可以接受多个文件。

我正在使用.NET Cores MultipartReader异步读取文件。

在我测试此上传的本地计算机上,一切正常。在我的本地计算机上,当我通过NGiNX代理将其运行到.NET Core中的Kestrel时,它仍然可以正常运行。但是,当我将其部署到Linux环境中的Docker容器中时,它失败并显示“应用程序已完成,而没有读取整个请求主体”。

我安装了一些请求日志记录中间件,似乎该帖子的正文通过NGiNX到达了Kestrel,但是我的路由中没有代码被调用。

同样,它可以在我的机器上本地工作,在本地计算机上也可以使用NGiNX代理。

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

好吧,为那些可能会遇到此错误的人弄清楚了。最后,这与我的NGiNX或docker配置无关。在控制器的构造函数中,我正在读取一个不存在的配置值。这引发了异常,导致我的方法永不被调用。

因此,对于任何遇到“应用程序已完成但未读取整个请求正文...”的人,您可能需要检查构造函数是否存在问题。