RSS の設定が簡単なため、カスタム ビルドの CMS をライブ サーバー (開発サーバー上にあった) に移動しました。application.cfclocation
問題は、新しいパスを反映するように を変更したにもかかわらず、リレーショナル マッピングが機能しなくなったことです。絶対パスも使用します。セットアップは次のようになります。
F:\...\cmsRoot\com\dac
(これは元のパスです)
F:\...\cmsRoot\admin\com\dac
(これは新しいサーバー上のパスです。唯一の違いは、管理フォルダー用の余分なレイヤーです。ドライブ文字は同じです)
Application.cfc
および ほとんどのページは、それぞれcmsRoot
およびcmsRoot\admin
フォルダにあります。dac
フォルダーには、リレーショナル CFC ファイルが含まれています。
当初、Coldfusion は各 CFC を初めてロードするときに、
リレーショナル マッピングごとにエラーをスローしていました (すべての CFC に同じ問題があることを確認するためにコメントアウトしました)。
"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 ( 内Application.cfc
) のマッピングを相対パスを使用するように変更しましたが、どちらも役に立ちませんでした (マッピングの問題である可能性が高いと判断したため)。また、フォルダーのアクセス許可をチェックして、それらが一致していることを確認しました.1 人のユーザーが問題を解決したと言ったからです。両方のフォルダーにも同じアクセス許可があります。
それが役立つ場合、ここに有用なApplication.cfc
情報があります:
this.ormsettings = { cfclocation = ["F:\...\cmsRoot\admin\com\dac", "F:\...\cmsRoot\admin\com"]
, dialect="MicrosoftSQLServer"
, eventHandling = true
};
Application.cfc
2 つのサーバー上のファイルの唯一の違いは、ファイルパスです。データベースは正しく設定されており、ページ自体には問題はありません (私が知っていることです)。
私が見つけたもう 1 つのことは、リレーショナル マッピングをコメント アウトすると、すべてが正しく読み込まれることです (これらのプロパティを削除したため、objectABC.getXYZ() 呼び出しは除外されます)。
Coldfusion アプリケーション サーバーも再起動しましたが、顕著な違いはありませんでした。
Application.cfc
ファイル構造のさらに上の部分が、私が設定した cfclocation 設定を上書きしている可能性はありますか? まさかこんなことになるとは思わなかったのですがApplication.cfc
、私の には何も問題がないように思えたので、アイデアがありません。また、application.cfc/.cfm の検索順序 (CFIDE アドミニストレータの [設定] の下) は、両方で同じです。デフォルトとして設定。
また、余分なフォルダー レイヤーを削除しようとしました (したがって、すべてのマッピングは同じです) が、エラーは同じです。
更新: /cmsRoot (F:...\cmsRoot) に特定のマッピングを追加すると、コンポーネントが永続的でないという新しいエラーが発生します。ただし、すべての私のcfcは次のように始まります:
component persistent = "true" entityName = .....
別の方法で定義したにもかかわらず、エンティティが永続的ではないと Coldfusion が判断する理由はありますか? はい、ormReload()
以前は正しく更新されていることを確認していました。