2017-02-27 6 views
1

로컬 컴퓨터에서 완벽하게 작동하는 매우 간단한 ASP.NET 핵심 응용 프로그램이 있습니다. 프로젝트를 게시 할 때 모든 것이 작동하지만 (GET, POST, DELETE) 부분적으로 업데이트하지 않습니다 (PATCH). 나는 JsonPatchDocument<T>을 사용합니다..NET 핵심 패치 JsonPatchDocument는 로컬에서는 작동하지만 서버에서는 작동하지 않습니다.

PATCH http://tomasz.look24.net/api/notes/1
헤더 : 콘텐츠 유형 = 응용 프로그램/JSON
원시 : [{ "영업 이익이 나는 우체부에서 보내려고 JSON입니다

[HttpPatch("{id}")] 
public IActionResult PartiallyUpdateNote(int id, [FromBody] JsonPatchDocument<NoteForUpdateDto> patches) 
     { 
      _log.LogInformation("Partial update of #{0}. Patches: {1}", id, patches); 

      if (patches == null) // <------ THIS IS ALWAYS TRUE 
      { 
       _log.LogError("Invalid patch format"); 
       return BadRequest("Invalid patch format?"); 
      } 

:이 코드입니다 ":" " "/ 제목 ","값 ":" ","경로를 대체 ne555e을 "}]

이 서버의 로그 (하나의 패치 히트를)입니다 : 나는 메시지 2 분이 로그를 가지고

2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Connection id ""0HL2VB6EGP0A9"" bad request data: ""Unexpected end of request content"" (86f1a409) 
Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException: Unexpected end of request content 
    at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.MessageBody.ForContentLength.<ReadAsyncAwaited>d__4.MoveNext() 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Executing action method "notes.api.Controllers.NotesController.PartiallyUpdateNote (notes.api)" with arguments (["1", ""]) - ModelState is Invalid (ba7f4ac2) 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Partial update of #1. Patches: null (30b5833a) 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [ERR] Invalid patch format (b8690943) 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Executing ObjectResult, writing value "Microsoft.AspNetCore.Mvc.ControllerContext". (4e968210) 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Executed action "notes.api.Controllers.NotesController.PartiallyUpdateNote (notes.api)" in 119502.6086ms (afa2e885) 
2017-02-27T22:46:46.1647691+01:00 0HL2VB6EI3TIB [INF] Request finished in 119503.2131ms 400 text/plain; charset=utf-8 (15c52c40) 
2017-02-27T22:46:46.1647691+01:00 [INF] Connection id ""0HL2VB6EGP0A9"" bad request data: ""Unexpected end of request content"" (86f1a409) 
Microsoft.AspNetCore.Server.Kestrel.BadHttpRequestException: Unexpected end of request content 
    at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.MessageBody.ForContentLength.ReadAsyncImplementation(ArraySegment`1 buffer, CancellationToken cancellationToken) 
    at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.MessageBody.Consume(CancellationToken cancellationToken) 
    at Microsoft.AspNetCore.Server.Kestrel.Internal.Http.Frame`1.<RequestProcessingAsync>d__2.MoveNext() 
2017-02-27T22:46:46.1647691+01:00 [INF] Connection id ""0HL2VB6EGP0A9"" communication error (46f6d175) 
Microsoft.AspNetCore.Server.Kestrel.Internal.Networking.UvException: Error -4077 ECONNRESET connection reset by peer 

:

서버 오류

(502) - 게이트웨이 또는 프록시 서버로 작동하는 웹 서버가 잘못된 응답을 받았습니다. 당신이 찾고있는 페이지에 문제가있어서, 그것을 표시 할 수 없습니다. 웹 서버 (게이트웨이 또는 프록시 역할을하는 )가 업스트림 컨텐트 서버에 접속할 때 컨텐트 서버로부터 유효하지 않은 응답을 수신했습니다.

무엇이 잘못 될 수 있습니까? 서버 구성에 누락 된 것이 있습니까? 는 그와 같은 문자열로 데이터를 얻을 때 :

public IActionResult PartiallyUpdateNote(int id, [FromBody] string patches) 

모든 서버 측에서 괜찮습니다. PartiallyUpdateNote (나는 믿는다)와 함께 항상 null을 반환하는 무언가가 있어야합니다.

답변

0

해결책을 찾았습니다. 내가 왜 궁금

[HttpPost("{id}")] 

을 게시하려면 PATCH을 변경할 때

그것은 작동?

+0

IIS에서이 작업을 실행하고 있습니까? – MindingData

+0

예. www.webio.pl에서 – tBlabs

관련 문제