问题描述
注意:这类似于this question,但与IIS有关,而不与Linux上的Azure应用服务有关。
我有一个用于上传大型文件的API端点。如果验证失败,文件名无效等,则不应上传文件。我们甚至接受校验和,如果文件已经存在,则跳过上传。
不幸的是,无论我在用户代码中做什么,Kestrel总是耗尽整个请求正文(有关详细信息,请参见this issue)。换句话说,即使我的代码没有读取响应主体并返回早期的错误响应,用户也必须在获得响应之前“上传”整个文件。在该期中,我收到一条提示,我可以返回一个Connection: close
标头来避免这种情况。不幸的是,尽管在本地调试时在响应中收到标头,但通过IIS在生产环境中运行时却没有收到标头。换句话说,如果ASP.NET Core响应中存在该标头,则IIS似乎会删除它。
有什么方法可以通过IIS强制返回Connection: close
头吗?