在中间件中返回状态代码304

The*_*lon 3 c# asp.net-core

当我通过我的中间件访问文件时,我正在尝试在我的ASP.Net Core应用程序中返回304 Not Modified状态代码.

我尝试设置HTTP状态代码并发回响应,如下所示:

context.Response.StatusCode = 304;
await context.Response.WriteAsync("Not Modified");
Run Code Online (Sandbox Code Playgroud)

但是我得到了这个例外:

发生System.InvalidOperationException HResult = -2146233079
消息=写入非正文304响应.
Source = Microsoft.AspNetCore.Server.Kestrel StackTrace:位于Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.d__183.MoveNext()的Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.HandleNonBodyResponseWrite()中 - - 从抛出异常的先前位置开始的堆栈跟踪结束---在System.Runtime.CompilerServices上System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)的System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(任务任务)处.TaskAwaiter.GetResult()at Adapt.REST.ServeStaticFilesMiddleware.d__8.MoveNext()in C:\ AdaptSource\Xivic\Adapt.Services\ServeStaticFilesMiddleware.cs:第113行InnerException:

显然我不能使用WriteAsync或SendFileAsync,因为它们都发送包含正文的响应.

如何在没有身体的情况下将304发送回客户端?

The*_*lon 6

设置状态代码后,什么都不做会导致预期的功能.

context.Response.StatusCode = 304;
return;
Run Code Online (Sandbox Code Playgroud)