2011-10-01 11 views
0

IIS 5.1에서 실행되는 바닐라 ASP 응용 프로그램이 있습니다. ASP 파일의 아래 코드는 IIS가 "Operation timed out"오류를 발생시킵니다. 그러나 오류에도 불구하고 프로세스는 백그라운드에서 서버에서 계속 실행되며 결국 예상대로 완료됩니다.작업 시간 초과 - ASP

IIS MMC와 ASP 파일 (Server.ScriptTimeout)을 통해 ASP 스크립트 시간 초과가 90 초 (기본값)에서 600, 1000 및 심지어 10000 초로 증가했습니다 (매우 높은 스크립트 시간 제한의 영향을 알고 있습니다) scrip timeout set에 관계없이 일관되게 오류가 발생했습니다.

WebServ는 COM + 앱이며 앱에서 실행되는 프로세스가 약 80 - 90 초가 걸리는 것을 관찰했습니다. 이 응용 프로그램은 내부적으로 IIS 설정을 조작하지 않습니다.

COM + 응용 프로그램의 코드를 최적화 할 수는 있지만 응용 프로그램이 SQL Server에 저장된 많은 양의 데이터를 다루기 때문에 최적화만으로는 도움이되지 않습니다. 따라서 데이터베이스가 커짐에 따라 애플리케이션을 완료하는 데 90 초 이상이 소요될 가능성이 높습니다.

그러므로 누군가가 나를 이해할 수 있도록 도와주세요. 1. ASP 스크립트 시간 초과 설정에 관계없이 "작업 시간 초과"오류가 발생하는 이유는 무엇입니까? 2. ASP 파일이 프로세스를 완료하는 데 더 많은 시간을 투자하려면 어떻게해야합니까?

P. 나는이 오류 메시지와 관련된 여러 다른 게시물을 찾아 보았지만 불행히도 도움이되는 것을 찾지 못했습니다.

감사합니다.

<% 
Server.ScriptTimeout = 10000 

.... initialize the variables.... 

Set WebServ = CreateObject("WebServ.RunCommand") 

lcResult = WebServ.Call(SessionKey, ConfigID, Program, Function, Mode, Params) 

Set WebServ = Nothing 

With Response 
    .ContentType = "text/xml" 
    .Write(lcResult) 
End With 
%> 
+0

btw. http://msdn.microsoft.com/en-us/library/ms524831%28v=vs.90%29.aspx -> 서버 구성 요소가 처리되는 동안 시간 초과가 적용되지 않습니다. – NickD

답변

0

첨부 된 응용 프로그램 풀에서 시간을 연장하십시오.

+0

감사합니다. 그러나 이것은 IIS 5.1입니다. 그것은 응용 프로그램 풀을 지원합니까? MMC와 ASP 페이지를 통한 ASP 타임 아웃 증가가 다음에 다른 일을한다면 당연히 다른 점이 없다는 것을 이미 언급했습니다. – RanC

0

lcResult의 내용은 무엇이되어야합니까?

코드에 response.write 및 response.end를 여러 개 배치하여 시간 초과가 발생한 위치를 찾으십시오.

+0

죄송합니다. 위 내용이 확실하지 않습니다. 위의 ASP 파일에 여러 Response.Write 및 Response.End 문을 배치해야하는 위치를 조언 해 주실 수 있습니까? lcResult의 내용과 관련하여 XML 형식의 매우 작은 테이블의 행은 거의 없습니다. – RanC

+0

lcResult = WebServ.Call (SessionKey, ConfigID, Program, Function, Mode, Params) 줄을 실행하는 동안 시간 초과가 발생했음을 확신합니다. 그러나이 줄을 완료하는 데 걸리는 실제 시간은 스크립트 시작 부분에 설정된 ScriptTimeout에 더 가깝지 않습니다. – RanC

0

출력 디버그 문자열을 COM 모듈에 추가하는 것이 좋습니다.

http://msdn.microsoft.com/en-us/library/windows/desktop/aa363362%28v=vs.85%29.aspx

당신은 내가으로 출력 디버그 문자열을 감싸는 것 디버거 또는 DebugView와 (http://technet.microsoft.com/en-us/sysinternals/bb896647)

aswell로 볼 수 있습니다 COM 모듈을 사용하여 ASP에서 사용합니다.

+0

아래의 내 의견 중 하나에서 언급했듯이 시간 초과가 발생하는 COM 응용 프로그램에서 메서드를 격리했습니다.이 메서드는 루프 내에서 SQL Server 테이블에 큰 수 (~ 4K)의 행을 삽입하려고 시도하지만 전체 COM 프로세스는 스크립트 시작 부분에 설정된 ScriptTimeOut과 비교할 때 90 초 미만으로 완료됩니다. 스틸 타임 아웃이 작동합니다. 당신이 생각할 수있는 이유가 있습니까? 예를 들어,이 유형의 오류가 발생하기 쉬운 반복을 반복하면 루프가 실행됩니까? COM 응용 프로그램의 루프는 무한 루프가 아닙니다. – RanC

+0

서버에서 단독으로 작업하거나 항상 트래픽이있는 경우이 문제가 발생합니까? 어쨌든, 4k 행을 삽입하는 데 90 초가 걸리지 않아야합니다. 나는 그것이 com 명령 내에서 입/출입 제한 시간 일 수 있다고 생각한다. asp 오류가 발생하는 동안 SQL 프로파일 러는 무엇입니까? – NickD