2013-04-24 2 views
2

RSS를 설정하기가 더 쉽기 때문에 사용자 지정 작성된 CMS를 실제 서버 (개발 서버에있는 서버)로 옮겼습니다. 문제는 새로운 경로를 반영하기 위해 application.cfclocation을 변경하더라도 관계형 매핑이 더 이상 작동하지 않는다는 것입니다. 또한 절대 경로를 사용합니다. 셋업은 그렇게 같다 :새 서버에서 관계형 매핑을 사용할 때 오류가 발생했습니다.

F:\...\cmsRoot\com\dac
F:\...\cmsRoot\admin\com\dac (이 원래 경로) (이 새 서버의 경로입니다 유일한 차이점은 관리자 폴더의 추가 레이어이며, 드라이브 문자가 동일합니다.)

Application.cfc 대부분의 페이지는 각각 cmsRootcmsRoot\admin 폴더에 있습니다. dac 폴더에는 내 관계형 CFC 파일이 들어 있습니다. 처음으로 각 CFC를로드 할 때

원래

는 ColdFusion이 각 관계형 매핑
"Error Occurred While Processing Request
Cannot load the target CFC abc for the relation property abc in CFC xyz

말하는 오류를 슬로우 (나는 확실히 모든 하나 하나가 같은 문제를 겪고 만들기 위해 그들을 주석).

각 CFC 파일의 시작 부분에 <cfscript>ORMReload();</cfscript> 행을 추가 한 후에이 오류를 지나치고 로그인 페이지에 액세스 할 수있었습니다.
Mapping for component abc not found.

를 호출 (그리고 오류가 발생합니다) 첫 번째 예는 다음과 같습니다 :
objectABC = EntityToQuery(EntityLoad("abc", {ActiveInd=1}));

이미했습니다하지만 지금은 오류를 내가 엔티티를 만들려고 모든 시간을 얻을 stackoverflow에 관련된 문제가 이미 검색되었고 ORMReload() 호출을 추가하여 원래 오류를 해결하는 데 도움이되었습니다. 그러나 그것은 현재의 문제를 해결하지 못합니다. 상대 경로를 사용하기 위해 CFC (for the Application.cfc)에 대한 매핑을 변경했는데 그 중 하나가 도움이되지 않았습니다. 매핑 문제 일 가능성이 높습니다. 또한 한 사용자가 자신의 문제를 해결했다고 말했기 때문에 폴더 사용 권한을 확인하여 일치하는지 확인했습니다. 두 폴더 모두 동일한 사용 권한을가집니다. 그 도움이된다면

여기에, 유용한 Application.cfc 정보입니다 : 내가 두 서버에 Application.cfc 파일 사이를 찾을 수 있습니다

this.ormsettings = { cfclocation = ["F:\...\cmsRoot\admin\com\dac", "F:\...\cmsRoot\admin\com"] 
        , dialect="MicrosoftSQLServer" 
        , eventHandling = true 
        }; 

유일한 차이점은 filepaths입니다. 데이터베이스가 올바르게 설정되어 있고 페이지 자체에 문제가 없습니다 (알고있는 것).

내가 발견 한 또 다른 것은 모든 관계형 매핑을 주석 처리하면 해당 속성을 제거한 이후로 모든 객체 (즉, 모든 objectABC.getXYZ() 호출 제외)가 올바르게로드됩니다.

또한 ColdFusion 응용 프로그램 서버를 다시 시작했지만 눈에 띄는 차이점은 없었습니다.

Application.cfc 파일 구조에서 멀리 떨어져있는 것이 내가 설정 한 cfclocation 설정을 무시할 수 있습니까? 나는 이것이 사실 일 것이라고 생각하지는 않았지만, 아무 것도 내 Application.cfc으로 기분이 나빠 보이지 않기 때문에 나는 아이디어가 없다. 그리고 application.cfc/.cfm 조회 순서 (CFIDE 관리자의 "Settings"아래)는 둘 다 동일합니다. 기본값으로 설정.

나는 또한 여분의 폴더 레이어를 제거하려고 했으므로 (모든 매핑이 동일하므로) 오류는 동일합니다.

업데이트 :/cmsRoot (F : ... \ cmsRoot)에 대한 특정 매핑을 추가하면 구성 요소가 영구적이지 않다는 새로운 오류가 발생합니다. 그러나,이 같은 내 모든 CFC의 시작 :

component persistent = "true" entityName = ..... 

는 ColdFusion이 엔티티 내가 그것을 다르게 정의에도 불구하고 지속되지 않습니다 생각하는 이유를 이유가 있나요? 그리고 예, 올바르게 업데이트되었는지 확인하기 위해 ormReload()을 사용했습니다.

답변

0

내가 찾은 해결책은 내 Application.cfc 파일에 application.mappings['\cmsRoot'] = 'F:\...\cmsRoot';을 사용하여 cmsRoot 폴더에 특정 매핑을 추가하는 것이 었습니다.

몇 가지 작업을 수행 할 수 있기 때문에 일부 ormReload()은 모든 .cfc 파일의 맨 위에 있습니다. 이러한 호출을 삭제하여 이제는 올바르게로드됩니다.