2017-01-03 3 views
2

내 미들웨어를 통해 파일에 액세스 할 때 내 ASP.Net 핵심 응용 프로그램에서 304 Not Modified 상태 코드를 반환하려고합니다.미들웨어에서 상태 코드 304 반환

나는 HTTP 상태 코드를 설정하고과 같이 응답을 다시 보내십시오 :

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

그러나 나는이 예외가 :

System.InvalidOperationException가 발생한 HRESULT = -2146233079
메시지 = 비 본문 304 응답에 씁니다.
자료 = Microsoft.AspNetCore.Server.Kestrel 스택 트레이스 : Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.HandleNonBodyResponseWrite (AT)에 Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame.d__183. MoveNext는() --- System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification에서 System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업) 에서 예외가 발생 된 이전 위치에서 스택 추적 --- 의 종료 (작업 작업에서 at System.Runtime.CompilerServices.TaskAwaiter.GetResult ( ) Xivic \ Adapt.Services ServeStaticFilesMiddleware.cs \ 라인 (113)의 InnerException : 둘 다 몸이 포함 된 응답을 보낼 때문에

그래서 분명히 내가 WriteAsync 또는 SendFileAsync을 사용할 수 없습니다.

본문없이 304를 클라이언트에 다시 보내려면 어떻게해야합니까?

+0

빈 문자열로 WriteAsync를 호출하면 오류가 표시되지 않습니다. 'await context.Response.WriteAsync ("");' – Andrius

답변

3

상태 코드를 설정 한 후에 아무 것도하지 않으면 의도 한 기능이 작동합니다.

관련 문제