加入收藏 | 设为首页 | 会员中心 | 我要投稿 甘南站长网 (https://www.0941zz.com/)- 科技、行业物联网、开发、云计算、云管理!
当前位置: 首页 > 编程开发 > asp.Net > 正文

是否可以通过IIS从ASP.NET Core强制返回Connection标头

发布时间:2023-02-17 09:02:06 所属栏目:asp.Net 来源:互联网
导读:如何解决是否可以通过IIS从ASP.NET Core强制返回Connection标头?? 注意:这类似于this question,但与IIS有关,而不与Linux上的Azure应用服务有关。 我有一个用于上传大型文件的API端点。如果验证失败,文件名无效等,则不应上传文件。我们甚至接受校验和
  如何解决是否可以通过IIS从ASP.NET Core强制返回Connection标头??
  注意:这类似于this question,但与IIS有关,而不与Linux上的Azure应用服务有关。
 
  我有一个用于上传大型文件的API端点。如果验证失败,文件名无效等,则不应上传文件。我们甚至接受校验和,如果文件已经存在,则跳过上传。
 
  不幸的是,无论我在用户代码中做什么,Kestrel总是耗尽整个请求正文(有关详细信息,请参见this issue)。换句话说,即使我的代码没有读取响应主体并返回早期的错误响应,用户也必须在获得响应之前“上传”整个文件。在该期中,我收到一条提示,我可以返回一个Connection: close标头来避免这种情况。不幸的是,尽管在本地调试时在响应中收到标头,但通过IIS在生产环境中运行时却没有收到标头。换句话说,如果ASP.NET Core响应中存在该标头,则IIS似乎会删除它。
 
  有什么方法可以通过IIS强制返回Connection: close头吗?
 
  解决方法
  我认为您可以尝试为asp.net核心应用程序禁用allowKeepAlive。
 
  <system.webServer>
      <httpProtocol allowKeepAlive="false" />
  </system.webServer>
  enter image description here
 
  enter image description here

(编辑:甘南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读