Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 返回中间件中的状态代码304_C#_Asp.net Core - Fatal编程技术网

C# 返回中间件中的状态代码304

C# 返回中间件中的状态代码304,c#,asp.net-core,C#,Asp.net Core,当通过中间件访问文件时,我试图在ASP.Net核心应用程序中返回304未修改的状态代码 我尝试设置HTTP状态码,并按如下方式发送响应: context.Response.StatusCode = 304; await context.Response.WriteAsync("Not Modified"); 但我有一个例外: 发生System.InvalidOperationException HResult=-2146233079 消息=写入非主体304响应。 Source=Microsof

当通过中间件访问文件时,我试图在ASP.Net核心应用程序中返回304未修改的状态代码

我尝试设置HTTP状态码,并按如下方式发送响应:

context.Response.StatusCode = 304;
await context.Response.WriteAsync("Not Modified");
但我有一个例外:

发生System.InvalidOperationException HResult=-2146233079
消息=写入非主体304响应。
Source=Microsoft.AspNetCore.Server.Kestrel StackTrace: 在Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.HandleNonBodyResponseWrite()中 在Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.d_u183.MoveNext()中 ---来自引发异常的上一个位置的堆栈结束跟踪--- 在System.Runtime.CompilerServices.TaskWaiter.ThrowForNonSuccess(任务 (任务) 在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务 (任务) 在System.Runtime.CompilerServices.TaskAwaiter.GetResult()中 在中的Adapt.REST.ServeStaticFilesMiddleware.d_u8.MoveNext()处 C:\adaptesource\Xivic\Adapt.Services\ServeStaticFilesMiddleware.cs:line 113.例外情况:

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


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

在设置状态代码后不做任何操作即可实现预期功能

context.Response.StatusCode = 304;
return;

如果使用空字符串调用WriteAsync,则不会显示错误:
wait context.Response.WriteAsync(“”)感谢您的回复:)。它帮助我解决了这个问题。