我正在尝试关闭当前响应,但是当我尝试HttpContext.Response.Body.Close()
且Response.End()
不存在时没有任何反应。
之所以要实现这一目标,是因为遗留的验证器功能会写入错误并关闭响应,或者至少停止父WebAPI方法。
示例:
private async Task Register_v2()
{
//Read JSON to object
UserRegisterRequest userRegisterRequest = Request.ReadBody().FromJson<UserRegisterRequest>();
//Validate object (legacy static method with a lot of logic)
//Validate() should end the response if object not validated
userRegisterRequest.Validate(isJson: true, isThrowHttpError: true);
//Code still reaches here and request does not close
string test = "hey I'm alive";
}
我可以以某种方式解决中间件问题吗?
谢谢
答案 0 :(得分:0)
有两种方法来终止Request pipeline
。
app.Run
中使用Startup.Configure
_next(context)
对于您的方案,您可以通过确定是否调用Middleware.InvokeAsync
来尝试第二种选择。
_next(context)