ASP.NET Core 不会缓冲 HTTP 响应正文。首次写入响应时:
- 
	标头与正文的该区块一起发送到客户端。 
- 
	无法再更改响应标头。 
请勿这样做:下面的代码尝试在响应已启动之后添加响应标头:.
app.Use(async (context, next) =>{await next();context.Response.Headers["test"] = "test value";});
在上面的代码中,如果将 next() 写入响应,则 context.Response.Headers["test"] = "test value"; 会引发异常。
请这样做:下面的示例在修改标头之前检查 HTTP 响应是否已启动。
app.Use(async (context, next) =>{await next();if (!context.Response.HasStarted){context.Response.Headers["test"] = "test value";}});
- 
	提供实时追加或替代标头的能力。 
- 
	不需要了解管道中的下一个中间件。 
app.Use(async (context, next) =>{context.Response.OnStarting(() =>{context.Response.Headers["someheader"] = "somevalue";return Task.CompletedTask;});await next();});
