2013-07-05 3 views
0

CFThread에서 이상한 오류가 나타납니다. 나는 CFThread 밖에서 완벽하게 실행되는 함수를 감싸고있다. 그러나 완료하는데 약 20 초가 걸리므로 CFThread를 실행 한 다음 사용자를 새 페이지로 CFLocation하고 완료되면 경고합니다.ColdFusion - CFThread가 헤더를 설정하지 못했습니다?

문제가있을 경우 CFTRY로 이메일을 보내주십시오.

cfcatch.message 사용이 어디 이메일을 받고 있어요 :

이 같은 오류에 대한 참조를 찾을 수 없습니다 "요청이 이미 완료했다으로 CFThread는 응답 헤더를 설정하지 못했습니다" Google에. 쓰레드를 호출 한 직후에 CFLocation을 사용하고 있다는 사실이 마음에 들지 않는다고 가정하고 있습니다. 그래서, 그 대신에 META REFRESH를 사용하여 사용자를 리디렉션하려고했습니다. 같은 오류 결과.

아이디어가 있으십니까?

은 7/8/13 업데이트 : 여기

코드 : 당신이 그것에 대해 생각하는 경우 cfthread 여전히 수 있기 때문에

<cfset admsID = replace(createUUID(),"-","","all")> 
<cfthread action="run" name="runADMS#admsID#" admsID="#admsID#" formstruct="#form#"> 
<cftry> 
<cfobject component="cfc.AutoDealerBrandMarketShare" name="adms"> 
<cfset rptPDF = adms.buildReport(dealer=formstruct.chosenDealer,mkt=formstruct.DMACode,make=formstruct.Make,rptID=admsID)> 
<cfcatch type="any"> 
<cfmail to="[email protected]" from="[email protected]" subject="ADMS Error"> 
Error occurred running a Polk Auto Dealer Market Share report. 
#cfcatch.Message# 
#cfcatch.detail# 
</cfmail> 
</cfcatch> 
</cftry> 
</cfthread> 
<cflocation url="http://www.usercanwaithere.com"> 
+1

문제를 재현 할 수 있도록 일부 코드를 게시 할 수 있습니까? –

+0

또한 CF가 생성하는 예외 로그를 ​​살펴보십시오. 이는 코드 줄에서 여러분을 가리킬 수 있습니다. 또한 Fiddler 또는 Chrome 개발자 도구를 사용하여 CFTHREAD 외부에서 함수를 실행하고 다른 헤더가 설정되는지 확인하면 HTTP 응답을 살펴보십시오 – barnyr

+0

코드로 게시물을 업데이트했습니다. 또한 로그를보고이 오류를 언급하는 것을 찾을 수 없습니다. – pmascari

답변

5

, 그것은 응답이 클라이언트로 전송 된 후 실행 의미가 있습니다. 따라서 헤더에 새로운 것을 설정하는 것이 더 이상 의미가 없습니다. 왜냐하면 "배가 항해했기 때문"입니다.

당신이 알고있는 바와 같이, CFThread는 새로운 스레드가 요청과 병행하여 일부 처리를 할 산란 할 수 있습니다. 이 스레드는 요청이 완료된 후에도 을 계속 실행할 수 있습니다. 이 스레드가 생성 된 HTTP 요청에 연결된 이 아니기 때문에 에서 수행 한 모든 작업은 HTTP 요청/응답 - 헤더, 쿠키, 응답 코드 설정과 같은 내용을 변경하려고 시도하는 스레드 은 이해가되지 않습니다. 끝내면 안된다.

그래서 예기치 않은 동작을 일으킬 수 있으므로 cfthread 안에 cfcookie, cfheader, cfcontent 등을 사용하면 안됩니다.

-Rupesh Kumar, Adobe ColdFusion engineer

+0

게시물을 코드로 업데이트했습니다. 분명히하기 위해서 ... 쓰레드의 코드는 단순히 PDF를 생성하고 서버에 저장합니다. 브라우저와 전혀 상호 작용하지 않습니다.이 오류와 관련하여 로그에 아무것도 표시되지 않았습니다. – pmascari

+1

_ "브라우저와 전혀 상호 작용하지 않기 위해"_ -하지만 오류가 발생하려고합니다. 당신이 PDF를 저장하고 있다고 말했기 때문에 (그 정보는 질문에 있어야합니다.) 어딘가에 (부적절한/불필요한) cfcontent가 있으면 놀라지 않을 것입니다. –

+1

발견. 코드를 훑어보고 CFDocument 태그 중 하나 위에 임의의 CFHEADER 태그를 발견했습니다. – pmascari

0

가 발견. 코드를 훑어보고 CFDocument 태그 중 하나 위에 임의의 CFHEADER 태그를 발견했습니다.