현재 .NET 응용 프로그램에 해당 API를 사용하여 SalesForce에 로그인했습니다. 여기에서 개체를 쿼리하여 보고서 정보를 가져오고 파일을 내보내는 URL을 작성합니다. 코드가 그대로입니다.HttpWebRequest.GetResponse 서버의 예약 된 작업에서 실행 중 시간 초과 문제
Dim request As HttpWebRequest
Dim response As HttpWebResponse
Dim stream as Stream
request = CType(WebRequest.Create(URL), HttpWebRequest)
request.Method = "GET"
request.Headers.Add("Cookie", "sid=" & header.sessionId)
response = CType(request.GetResponse(), HttpWebResponse)
stream = response.GetResponseStream()
위의 내 header.sessionId는 성공적인 로그인을 위해 내 세션을 캡처하는 SalesForce 세션 헤더입니다.
이 응용 프로그램은 로컬에서 테스트하거나 프로덕션 서버 (Visual Studio 2010에서 실행)에서 성공적으로 작동합니다. 문제를 일으키는 예약 된 작업으로 실행되도록 설정했습니다. 이 작업은 서버에서 관리자 계정으로 실행되도록 설정되어 있으며 수동으로 시작 (작업 -> 실행을 마우스 오른쪽 단추로 클릭)하거나 실행 중에 서버에 연결되어 있으면 작동합니다. 서버에서 연결이 끊어지고 작업이 실행되면 "System.Net.WebException : 작업이 System.Net.HttpWebRequest.GetResponse()"시간마다 오류가 발생합니다. 로그인하고 응용 프로그램을 수동으로 시작하면 작동합니다.
앞에서 설명했듯이이 계정은 관리자 계정으로 실행되도록 설정되어 있으며 보안을 위해 계정을 완전히 제어합니다. 나는 "로그인 한 경우에만 실행"을 선택하지 않았으며 유휴 상태 일 때만 실행하도록 설정하지 않았습니다.
내가 아는 바로는 웹 요청의 기본 제한 시간은 100,000ms 또는 100 초입니다. 이 작업은 한계에 도달하기 전에 시간 초과를 가져옵니다. 표시된 코드 바로 앞에, 나는 세션이 유효하다는 것을 확인하고 그렇지 않은 경우 세션을 갱신합니다. 이 시간 제한은 다운로드하려는 첫 번째 보고서에서 항상 발생하지만 수동으로 실행하면 2 분 이내에 25 개의 보고서를 다운로드 할 수 있습니다.
아이디어가 있으십니까?
... 제한 시간을 연장 해 보셨습니까? – Kat
여러 시간 초과를 시도했지만 모든 경우에 한도에 도달하기 전에 시간 초과가 발생합니다. – Trizz
잠깐만 기다려주십시오. 시간 초과에 도달하지 못하면 시간 초과 오류가 발생합니까? 어쩌면 계속 살아 있어야 할 것입니다. – Kat