programing

Azure ASP .net WebApp 요청 시간이 초과되었습니다.

lastcode 2023. 5. 12. 22:18
반응형

Azure ASP .net WebApp 요청 시간이 초과되었습니다.

나는 Azure App 서비스에 ASP.net MVC 웹 앱을 배포했습니다.

사이트에서 DB(DbContext)에서 데이터를 가져오는 컨트롤러 메소드로 GET 요청을 합니다.때때로 DB에서 데이터를 가져오는 과정은 4분 이상 걸릴 수 있습니다.그것은 제 요청이 4분 이상 아무런 조치가 없다는 것을 의미합니다.Azure가 연결을 종료한 후 메시지가 표시됩니다.

500 - 요청 시간이 초과되었습니다.

웹 서버가 지정된 시간 내에 응답하지 못했습니다.

다음은 방법의 예입니다.

 [HttpGet]
    public async Task<JsonResult> LongGet(string testString)
    {            
       var task = Task.Delay(360000);
        await task;            
        return Json("Woke", JsonRequestBehavior.AllowGet);
    }

저는 이런 질문들을 많이 보았지만 답을 얻지 못했습니다.

작동하지 않음 1 다른 링크를 제공할 수 없습니다. 평판이 너무 낮습니다.

저는 웹 에서 사용할 수 없는 Azure 로드 밸런서에 대한 이 기사를 읽었지만, Azure 웹 앱에서 제 문제를 해결하는 일반적인 방법은 TCP 킵얼라이브를 사용하는 것이라고 썼습니다.그래서 방법을 바꿨습니다.

[HttpGet]
    public async Task<JsonResult> LongPost(string testString)
    {
        ServicePointManager.SetTcpKeepAlive(true, 1000, 5000);
        ServicePointManager.MaxServicePointIdleTime = 400000;
        ServicePointManager.FindServicePoint(Request.Url).MaxIdleTime = 4000000;
       var task = Task.Delay(360000);
        await task;            
        return Json("Woke", JsonRequestBehavior.AllowGet);
    }

하지만 여전히 같은 오류가 발생합니다.나는 다음과 같은 간단한 GET 요청을 사용하고 있습니다.

GET /Home/LongPost?testString="abc" HTTP/1.1
Host: longgetrequest.azurewebsites.net
Cache-Control: no-cache
Postman-Token: bde0d996-8cf3-2b3f-20cd-d704016b29c6

그래서 저는 Azure 웹 앱에서 제가 무엇을 잘못하고 있는지, 어떻게 하면 요청 타임아웃 시간을 늘릴 수 있는지에 대한 답을 찾고 있습니다.어떤 도움이든 감사합니다.

포털의 방위 설정:

웹 소켓 - 켜기

항상 켜짐 - 켜짐

앱 설정:

SCM_COMMAND_IDLE_TIMEOUT = 3600

WEBITE_NODE_DEFAULT_VERSION = 4.2.3

230초.바로 그겁니다.그것은 Azure App Service의 기내 요청 시간 제한입니다.그것은 플랫폼에서 하드 코딩되어 있기 때문에 TCP가 존속하든 그렇지 않든 당신은 여전히 그것에 묶여 있습니다.

출처 - David Ebbo의 답변을 참조하십시오.
https://social.msdn.microsoft.com/Forums/en-US/17305ddc-07b2-436c-881b-286d1744c98f/503-errors-with-large-pdf-file?forum=windowsazurewebsitespreview

데이터를 반환하지 않는 요청의 경우 230초(즉, 4분 미만)의 시간 초과가 발생합니다.그 후, 실제로는 요청이 서버 측에서 계속 진행할 수 있음에도 불구하고, 클라이언트는 당신이 본 500개를 얻습니다.

애플리케이션에 대해 자세히 알지 못하면 다른 접근 방식을 제안하기가 어렵습니다.하지만 분명한 것은 다른 접근법이 필요하다는 것입니다.

반품할 수 있습니다.202 Accepted대신에Location나중에 결과를 위해 투표할 헤더?

방금 Azure 웹 사이트를 Shared Environment에서 Standard로 변경했는데 작동합니다.

언급URL : https://stackoverflow.com/questions/38673318/azure-asp-net-webapp-the-request-timed-out

반응형