prosource

긴 ASP에서 IIS 요청 시간 초과입니다.NET 연산

probook 2023. 5. 13. 10:20
반응형

긴 ASP에서 IIS 요청 시간 초과입니다.NET 연산

긴 작업을 실행할 때 IIS에서 요청 시간 초과가 발생합니다.내 ASP 뒤에.NET 어플리케이션은 데이터를 처리하고 있지만 처리 중인 레코드의 수가 많아 작업에 시간이 오래 걸립니다.

그러나 IIS가 세션 시간을 초과한 것 같습니다.IIS 또는 ASP의 문제입니까?NET 세션?

ASP에 허용되는 시간을 연장하려는 경우.NET 스크립트를 실행한 다음 값을 증가시킵니다.의 기본값은 90초입니다.의 경우 NET 1.x 및 110초입니다.NET 2.0 이상.

예:

// Increase script timeout for current page to five minutes
Server.ScriptTimeout = 300;

은 사용자의 이값에 할 수 .web.config구성 요소의 파일:

<!-- Increase script timeout to five minutes -->
<httpRuntime executionTimeout="300" 
  ... other configuration attributes ...
/>

여기에 이미지 설명 입력

MSDN 설명서에 따라 다음 사항을 참고하십시오.

"이 제한 시간은 컴파일 요소의 디버그 특성이 False인 경우에만 적용됩니다.따라서 디버그 특성이 True이면 디버깅하는 동안 응용프로그램 종료를 방지하기 위해 이 특성을 큰 값으로 설정할 필요가 없습니다."

이 작업을 이미 수행했지만 세션이 만료된 경우 ASP를 늘립니다.NET 값:

예:

// Increase session timeout to thirty minutes
Session.Timeout = 30;

은 사용자의 이값에 할 수 .web.config에 파일을 합니다.sessionState구성 요소:

<configuration>
  <system.web>
    <sessionState 
      mode="InProc"
      cookieless="true"
      timeout="30" />
  </system.web>
</configuration>

스크립트를 실행하는 데 몇 분이 걸리고 동시 사용자가 많은 경우 페이지를 비동기 페이지로 변경하는 것이 좋습니다.이렇게 하면 응용프로그램의 확장성이 향상됩니다.

서버에 대한 관리자 권한이 있는 경우 다른 방법은 이 장시간 실행 작업을 예약된 작업 또는 윈도우즈 서비스로 구현할 후보로 간주하는 것입니다.

@Kev의 훌륭하고 철저한 답변!

WebForms 응용 프로그램에서 하나의 관리 페이지에서만 긴 처리를 했기 때문에 코드 옵션을 사용했습니다. 구성 로 덕 허 수 위 버 구 사 했 습 용 을 니 전 다 성 의 해 기 하 용 을 른 빠 션 에 서 일 적 인 시 ▁a ▁in ▁version ▁the ▁but▁config ▁used 다 니 ▁on<location>web.config에 태그가 있습니다.이러한 방식으로 관리/처리 페이지는 충분한 시간을 확보할 수 있는 반면 최종 사용자를 위한 페이지 등은 기존의 시간 초과 동작을 유지할 수 있습니다.

아래에 동일한 빠른 수정이 필요한 구글 사용자를 위한 구성을 제공했습니다.물론 제 '4시간' 예제가 아닌 다른 값을 사용해야 하지만 세션에 유의하십시오.timeOut시간(분)입니다. 요청 중).executionTimeout초 단위입니다!

그리고 - 이미 2015년이기 때문에 - 퀵픽스가 아닌 경우 사용해야 합니다.Net 4.5의 비동기/대기 기능은 가능한 경우 를 대신합니다.2010년에 KEV가 답변했을 때 최첨단이었던 NET 2.0의 ASYNC 페이지 :)

<configuration>
    ... 
    <compilation debug="false" ...>
    ... other stuff ..

    <location path="~/Admin/SomePage.aspx">
        <system.web>
            <sessionState timeout="240" />
            <httpRuntime executionTimeout="14400" />
        </system.web>
    </location>
    ...
</configuration>

저는 이것을 여기에 게시합니다. 왜냐하면 저는 그것에 약 3시간과 4시간을 소비했고, 위의 것들과 같은 답들만 찾았고, 그것들을 추가하라는 것을 발견했기 때문입니다.executionTime하지만 ASP를 사용하는 경우에는 문제가 해결되지 않습니다.NET 코어.이를 위해 다음과 같은 작업이 가능합니다.

web.config 파일에서 다음을 추가합니다.requestTimeout의 속성.aspNetCore노드

<system.webServer>
  <aspNetCore requestTimeout="00:10:00" ... (other configs goes here) />
</system.webServer>

이 예에서는 10분 동안 값을 설정합니다.

참조: https://learn.microsoft.com/en-us/aspnet/core/hosting/aspnet-core-module#configuring-the-asp-net-core-module

제거한다.~위치상 캐릭터 so.

path="~/Admin/SomePage.aspx"

된다

path="Admin/SomePage.aspx"

언급URL : https://stackoverflow.com/questions/3829202/iis-request-timeout-on-long-asp-net-operation

반응형