ASP中HttpContext RESPONSE如何结束.NET核心



我想使用mvcSystem.Web.HttpContext.Current.Response.End();但在mvc核心2中尝试使用以下代码:

private readonly IHttpContextAccessor _httpContextAccessor;
public SmsService(IUnitOfWork uow ,IHttpContextAccessor httpContextAccessor) 
{
_uow = uow;
_uow.CheckArgumentIsNull(nameof(_uow));
_LockIPRequest= uow.Set<LockIPRequest>();
this._httpContextAccessor = httpContextAccessor;
}
_httpContextAccessor.HttpContext.Response.WriteAsync("</body></html>");
_httpContextAccessor.HttpContext.Response.end();

_httpContextAccessor.HttpContext.Response.end();

end((;不工作mvc核心不退出

正如在评论中提到的,响应。ASP中不存在End。NET核心世界。

而不是响应。最后,您应该这样设置响应状态代码:

_httpContextAccessor.HttpContext.Response.StatusCode = StatusCodes.Status200OK;

这不会完全"结束"回应。中间件仍然有机会运行,但通过设置状态代码,框架可以理解已经提供了响应。但是,您将负责确保下游中间件不会响应请求输出其他内容。尽管这通常不是问题。

现在2022年8月,可以调用Response。通过SystemWebAdapters库结束。我特别建议您只有在从执行大规模迁移时才使用它。NET Framework项目到。NET核心。如果你在一个绿地项目中,尽量不要使用这个库,并按照ASP的建议编写代码。NET核心请求/响应生命周期。

最新更新