当我通过我的中间件访问文件时,我正在尝试在我的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发送回客户端?
设置状态代码后,什么都不做会导致预期的功能.
context.Response.StatusCode = 304;
return;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2075 次 |
| 最近记录: |