2011-08-05 7 views
1

가끔씩 시간이 많이 걸리는 (15 초) 백그라운드 처리가 필요한 스크립트가 있지만 다른 경우에는 간단한 리디렉션입니다. 리디렉션 대상은 스크립트 실행 초기에 알려졌습니다. 리디렉션 URL을 알면 리다이렉트 HTML을 사용자 에이전트로 보내고 HTTP 응답을 닫을 수 있지만 스크립트를 계속 처리 할 수 ​​있습니까?ASP Classic에서 HTTP 연결을 닫고 실행을 계속할 수 있습니까?

답변

3

ASP 코드에서 비동기 적으로 프로그램 (BAT, EXE 등)을 실행하여이 문제를 해결할 수 있습니다.

set wshell = CreateObject("WScript.Shell") 
    runcmd = "c:\myOwnProgram.bat param1=test" 
    wshell.run runcmd, 0, False 

Wshell.Run는 물건 비동기를 실행할 수 있습니다. 스크립트 타임 아웃 걱정없이 시간을 낭비하지 마세요! 정말 대단해.

+0

데이비드 감사합니다. 스크립트를 두 개로 나눌 수 있으며 wshell을 사용하여 wget을 호출하여 스크립트의 두 번째 부분을 실행할 수 있습니다. 감사! – Sc0ttyD

+0

좋아, 나는 시도했지만 사용 권한 오류가 발생했습니다 : 'Microsoft VBScript 런타임 오류'800a0046 ' 사용 권한이 거부되었습니다. – Sc0ttyD

+0

응용 프로그램 풀이 실행하려는 프로그램에 대한 액세스 권한을 갖고 있는지 확인하십시오. 일반적으로 IIS는 "Local_service"로 실행되지만 다른 계정으로 실행될 수 있습니다. 1. IIS 풀이 실행중인 계정을 확인하십시오. 2. 프로그램 파일을 마우스 오른쪽 버튼으로 클릭하고 필요한 권한을 추가하십시오. – David

관련 문제