Content-Length:OWIN 为 0

Content-Length: 0 with OWIN

在 Owin 中间件中写入 body 内容时,处理 Content-Length 的正确方法是什么?

目前我们正在使用

context.Response.Write(data); // data is a string.

在大多数情况下它有效,但在某些情况下(IIS 主机在 Win 2012 R2 上)Content-Length 的值为 0。

我认为设置 Content-Length header 或使用 Transfer-Encoding: chuncked 的选项取决于主机来处理,但看起来我遗漏了什么。

将 body 内容写入 OWIN 响应流时处理 Content-Length 的正确方法是什么?

我们还在 github issue.

中讨论了该错误

这主要是主机问题。如果应用程序确切知道内容长度,则它可以选择设置内容长度,否则应用程序应该让服务器选择设置内容长度或分块。