gpt4 book ai didi

c# - 在中间件中返回一个状态码 304

转载 作者:行者123 更新时间:2023-11-30 14:24:20 25 4
gpt4 key购买 nike

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

我尝试设置 HTTP 状态代码并像这样发回响应:

context.Response.StatusCode = 304;
await context.Response.WriteAsync("Not Modified");

但是我得到了这个异常(exception):

System.InvalidOperationException occurred HResult=-2146233079
Message=Write to non-body 304 response.
Source=Microsoft.AspNetCore.Server.Kestrel StackTrace: at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.HandleNonBodyResponseWrite() at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.d__183.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at Adapt.REST.ServeStaticFilesMiddleware.d__8.MoveNext() in C:\AdaptSource\Xivic\Adapt.Services\ServeStaticFilesMiddleware.cs:line 113 InnerException:

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

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

最佳答案

设置状态代码后什么也不做就可以实现预期的功能。

context.Response.StatusCode = 304;
return;

关于c# - 在中间件中返回一个状态码 304,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41453773/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com