ko en ko ko ko ja en en zh en pt ko ko en ko ko nl ko en ko nl ko en ko ko en nl ko en ko nl ko ja ko ko en ko ko en ko nl en ko ko nl ko en nl ko en ko ko ko ko ko ko zh en en en en pt fr en en kn en sv fr en en en en en es fr en en en fr ja en en en en en en en en en fi en hu pt hbs_lat ru en en en en pl ko ko ko ko ko ko ko zh en en pt en en en uz en en fr eo sv en en en es en en en en en en ja en it hu ja eo en de en ko ko en en
ASP.NET Core RC2 웹 API에서 HTTP 500을 반환하는 방법? ... - How IT
RC2에는 더 이상 HttpStatusCodeResult가 없으며 500 유형의 IActionResult를 반환 할 수있는 항목이 없습니다.
내가 요구하는 것과 접근법이 완전히 다른가요? 더 이상 Controller코드를 사용하지 않습니까? 프레임 워크가 일반적인 500 예외를 API 호출자에게 다시 던지도록합니까? 개발을 위해 정확한 예외 스택을 어떻게 볼 수 있습니까?
내가 볼 수 있듯이 ControllerBase클래스 안에 도우미 메서드가 있습니다 . StatusCode방법을 사용하십시오 .
StatusCode(int statusCode, object value)콘텐츠를 협상하는 오버로드를 사용할 수도 있습니다 .
당신은 사용할 수 Microsoft.AspNetCore.Mvc.ControllerBase.StatusCode와 Microsoft.AspNetCore.Http.StatusCodes당신이 하드 코드의 특정 번호를하지 않으려면, 당신의 응답을 형성한다.
업데이트 : 2019 년 8 월
아마도 원래 질문과 직접 ​​관련이 없지만 동일한 결과를 얻으려고 할 때 어셈블리 에서 발견 된 Microsoft Azure Functions새 StatusCodeResult객체 를 만들어야한다는 것을 알았습니다 Microsoft.AspNetCore.Mvc.Core. 내 코드는 이제 다음과 같습니다.
응답에 신체가 필요한 경우 전화를 걸 수 있습니다.
이것은 응답 객체와 함께 500을 반환합니다 …
더 좋은 방법이 현재로서는이 문제를 처리하기 위해 (1.1)에서이 작업을 수행하는 것입니다 Startup.cs의 Configure():
에 대한 경로가 실행됩니다 /Error. 이렇게하면 작성하는 모든 작업에 try-catch 블록을 추가하지 않아도됩니다.
물론 다음과 유사한 ErrorController를 추가해야합니다.
[Route("[controller]")] public class ErrorController : Controller { [Route("")] [AllowAnonymous] public IActionResult Get() { return StatusCode(StatusCodes.Status500InternalServerError); } }
자세한 내용은 여기를 참조 하십시오 .
실제 예외 데이터를 가져 오려면 명령문 Get()바로 앞에 이를 추가 할 수 있습니다 return.
// Get the details of the exception that occurred var exceptionFeature = HttpContext.Features.Get (); if (exceptionFeature != null) { // Get which route the exception occurred at string routeWhereExceptionOccurred = exceptionFeature.Path; // Get the exception that occurred Exception exceptionThatOccurred = exceptionFeature.Error; // TODO: Do something with the exception // Log it with Serilog? // Send an e-mail, text, fax, or carrier pidgeon? Maybe all of the above? // Whatever you do, be careful to catch any exceptions, otherwise you'll end up with a blank page and throwing a 500 }
Scott Sauber의 블로그 에서 가져온 스 니펫 위 .
ASP.NET이 아닌 컨텍스트에서 사용해야합니다 (ASP.NET Core에 대한 다른 답변 참조).
HttpStatusCode의 열거 형입니다 System.Net.
에 대한 것과 같은 내부 서버 오류를 나타내는 사용자 정의 ObjectResult 클래스를 작성하는 방법은 OkObjectResult무엇입니까? 자신의 기본 클래스에 간단한 메소드를 삽입하여 InternalServerError를 쉽게 생성하고 Ok()또는 처럼 수행 할 수 있습니다 BadRequest().
[Route("api/[controller]")] [ApiController] public class MyController : MyControllerBase { [HttpGet] [Route("{key}")] public IActionResult Get(int key) { try { //do something that fails } catch (Exception e) { LogException(e); return InternalServerError(); } } } public class MyControllerBase : ControllerBase { public InternalServerErrorObjectResult InternalServerError() { return new InternalServerErrorObjectResult(); } public InternalServerErrorObjectResult InternalServerError(object value) { return new InternalServerErrorObjectResult(value); } } public class InternalServerErrorObjectResult : ObjectResult { public InternalServerErrorObjectResult(object value) : base(value) { StatusCode = StatusCodes.Status500InternalServerError; } public InternalServerErrorObjectResult() : this(null) { StatusCode = StatusCodes.Status500InternalServerError; } }
MVC .Net Core에서 JSON 응답을 반환하려는 경우 다음을 사용할 수도 있습니다.
Response.StatusCode = (int)HttpStatusCode.InternalServerError;//Equals to HTTPResponse 500 return Json(new { responseText = "my error" });
JSON 결과와 HTTPStatus를 모두 반환합니다. 결과를 jQuery.ajax ()로 반환하는 데 사용합니다.
이 글은 C# 카테고리로 분류되었고 소장 마님에 의해 2021-08-18에 작성됐습니다.
← Windows 응용 프로그램에서 GUI 용 테마를 다운로드 하시겠습니까? 만든 Windows 응용 Windows 7 탐색기에서 녹색 폴더는 무엇을 의미합니까? 파일을 디렉토리로 드래그했습니다. 복사 →
특정 결말을 가진 파일이없는 디렉토리 찾기 디렉토리를 표시하고
R에서 eCDF와 신속하게 통합 d\hat{F}_n(y) F^nF^n\hat{F}_nggg 그러나 이것은
Emacs에서 ispell의 개인 사전은 어디에 저장됩니까? 곳은 ispell 개인 사전? 문서가 저장되어있다 http://www.gnu.org/software/emacs/manual/html_node/emacs/Spelling.html가
AUC 대신 정규화 된 Gini Score를 평가로 사용하는 이유는 무엇입니까? Safe Driver Prediction 은 Normalized Gini
내 PHP 설치 경로는 어디입니까 centos를 사용하고
Proudly powered by WordPress