例如ExceptionHandlerMiddleware Github 上的中间件代码
将此用作:
if (context.Response.HasStarted ||...)
Run Code Online (Sandbox Code Playgroud)
我不太明白,假设是管道中的ExceptionHandlerMiddleware第一个中间件,当请求仍在管道中时,Web 服务器如何开始向客户端发送响应?因为请求还没有从ExceptionHandlerMiddleware中出来,所以还没有到达Web服务器,那么在这种情况下Web服务器怎么可能已经开始向客户端发送响应呢?
任何中间件或处理程序都可以选择WriteAsync在 上调用(或其他类似方法)HttpResponse,可能会多次。
不一定将所有这些写入都存储在本地缓冲区中,并且实际上可能不希望仅在本地进行缓冲。因此,迟早,这些Write调用将导致通过网络发送真实数据。
并且,在这个具体示例中,处理程序在遇到导致控制权返回到ExceptionHandlerMiddleware.
| 归档时间: |
|
| 查看次数: |
2831 次 |
| 最近记录: |