누구든지이 문제를 설명 할 수 있습니까? onApplicationStart
에 여러 응용 프로그램 범위 설정을 설정했으며 그 중 일부는 onSessionStart
에 참조되었습니다. 그러나 ORM을 활성화하면 onApplicationStart가 전혀 실행되지 않아 내 onSessionStart 메서드가 실패하는 것 같습니다.ColdFusion - 실행중인 응용 프로그램 시작에서 ORM을 사용 중지하면
이것이 문제라는 것을 알기까지 잠시 시간이 걸렸습니다. 일반적으로 개발 과정에서 프로그래밍 방식으로 onApplicationStart
을 타격하여 테스트 할 것입니다. 그래서 서비스를 다시 시작한 후에야 증상을 발견했습니다. 결국 나는 다시 ORM에 그것을 추적과 같이 간단하다 : 나는 Application.cfc을 제거
THIS.ormenabled = true; // Error
THIS.ormenabled = false; // Everything peachy
내가 실행 된 것을 볼 수 있도록 다양한 방법에 약간의 타임 스탬프를 넣어 :
<cfscript>
THIS.Name = "TestyMcTestable"
THIS.datasource = 'Test';
THIS.ormenabled = true;
</cfscript>
<cfsetting
requesttimeout="20"
showdebugoutput="false"
enablecfoutputonly="false"
/>
<cfset request.pseudo = Now() />
<cfset sleep(1500)>
<cffunction name="OnApplicationStart" access="public" returntype="boolean" output="false">
<cfset request.application = Now() />
<cfset sleep(1500)>
<!--- Return out. --->
<cfreturn true />
</cffunction>
<cffunction name="OnSessionStart" access="public" returntype="void" output="false">
<cfset request.session = Now() />
<cfset sleep(1500)>
<!--- Return out. --->
<cfreturn />
</cffunction>
<cffunction name="OnRequestStart" access="public" returntype="boolean" output="false">
<cfargument name="TargetPage" type="string" required="true" />
<cfset request.requeststart = Now() />
<cfset sleep(1500)>
<!--- Return out. --->
<cfreturn true />
</cffunction>
<cffunction name="OnRequest" access="public" returntype="void" output="true">
<cfargument name="TargetPage" type="string" required="true" />
<cfset request.request = Now() />
<cfset sleep(1500)>
<!--- Include the requested page. --->
<cfinclude template="#ARGUMENTS.TargetPage#" />
<!--- Return out. --->
<cfreturn />
</cffunction>
내 index.cfm는 요청 범위의 덤프가 포함되어 있습니다. orm 설정을 제거하면 모두 예상대로 돌아옵니다. 그러나 거기에 설정을 적용하면 응용 프로그램 시작시 변수 세트가 완전히 누락되어 onApplicationStart가 전혀 실행되지 않은 것처럼 보입니다.
요청의 응용 프로그램 이름을 변경하여 테스트 중이지만 서비스를 다시 시작했는지 확신 할 수 있습니다.
내가 누락 된 항목이 있습니까? 이것이 문서화 된 행동입니까? 저는 Railo에서 이것을 실행하고 있습니다 - ACF에서 광범위하게 테스트하지는 않았지만 초기 문제도 거기에서 발생했기 때문에 같은 원인이라고 생각합니다.
누구든지이 문제에 관해 밝힐 수 있습니까?
당신은'cfscript' 대신'cfset'을 사용해 보았고 여러분은'ormsettings' 구조를 제공하여 어떤 일이 일어나는지 보았습니까? 나는 그 중 어떤 것도 중요하다고 생각하지 않는다. 그러나 그것이 버그라면, 낯선 것들이 그것을 고칠 수있다. – Travis
'application.cfc'의 다운 된 버전에서'sessionmanagement'가 활성화되어 있습니까? 이 예제에서는 그렇지 않습니다. – Travis
스트립되지 않은 다운 버전에서는 세션 관리가 활성화되어 있습니다. 그래도 어느 쪽이라도 어떤 차이도없는 것처럼 보입니다. cfset으로 이동하여 ormsettings 구조체를 제공하려고했지만 아무 소용이 없었습니다. 그래도 고마워! –