ColdFusionサーバーフロンキャッシュ問題
-
20-09-2019 - |
質問
の開発を行っていcoldFusion用途で自分のノートでColdFusion8サーバー IISるWindows Vista.いていますなんの問題です。
問題は、その変更をすることが出来るマフロンまでが表示される場合を除いて再スターマColdFusionアプリケーションサーバー、変化を自分のフロンのない商品につけられたタグです。多くの場合、再起動した機械でWindowsできな再起動のColdFusion Application Serverサービスです。あり方をリセットするColdFusionサーバのフロンキャッシュ?
この吸着までに多くの時間だけを再開く後かに変化する訳ではありません。せれば大変ありがたいと思っていま大きくお願いいたします。
感謝です。
解決
これらを何らかの永続的な範囲でオブジェクトとして作成していることを保証します。例:アプリケーション、セッションスコープ。開発中にこの問題を回避するために私が一般的に行うことは、URLパラメーターを作成し、Application.CFM/CFCファイル(またはオブジェクトを作成している場所)で確認し、そのURLパラメーターが検出された場合にオブジェクトを再作成することです。
例:
<cfif NOT structKeyExists(application,"myObj") OR structKeyExists(url,"reinit")>
<cfset application.myObj = createObject("component","path.to.cfc") />
</cfif>
もちろん、問題を抱えているすべてのオブジェクトでこれを行う必要があります。
他のヒント
これがCFの他のバージョンでもあるかどうかはわかりませんが、CF9ではApplicationStop()を実行でき、CFapplicationをリセットしてリロードします。
cfadminで「コンポーネントキャッシュ」をチェックする - >キャッシュ
また、CFADMIN->マッピングを確認し、CFCフォルダーが正しいものを指していることを確認してください。人がソースコードをクローン化し、マッピングを新しいフォルダーに変更しないことがあります。
ColdFusion管理者には、次のいずれかの有効化(チェック)がありますか?
キャッシュ>信頼できるキャッシュ
キャッシュ>クラスファイルの保存
明らかなことを尋ねるだけです:onapplicationstartからこれらの機能を呼び出していますか?
かみの"明確なテンプレートキャッシュ"ボタンを押下CF管理>キャッシュ.
これを行う。私には通常のボタンをクリックし複数回CFの登録変更後のファイルです。
もうチ、資生堂のコスメサービスをキャッシュします。注意:るだけでなくこの開発機械!!!
あなたが開発者でキャッシュを持っている必要があるなら、あなたは私がしていることをするかもしれません:
最初に、OnApplicationStart()メソッドを呼び出すOnRequest()メソッドの上部にURLフラグをチェックします。
<cfif IsDefined("URL.dev")>
<cflock timeout="5" scope="Session" type="Exclusive">
<cfif URL.dev EQ true>
<cfset SESSION.debug = true />
<cfelse>
<cfset StructDelete(SESSION, "debug") />
</cfif>
</cflock>
</cfif>
<cflock timeout="5" scope="Session" type="Readonly">
<cfif IsDefined("URL.appreset") or IsDefined("SESSION.dev")>
<cfset StructClear(SESSION) />
<cfset onApplicationStart() />
</cfif>
</cflock>
これにより、ほとんどの問題が修正されます。ただし、ロードしているクラスで問題が発生した場合、このフラグを確認するのに十分ではありません。私がこれに使用するソリューション:
onerror()メソッドのボトムに以下を追加します。
<cfif IsDefined("APPLICATION")>
<cfset StructClear(APPLICATION) />
</cfif>
最後に、アプリケーションオブジェクトが存在すること、およびアプリケーションスコープの一部として宣言している各クラスが存在するか、OnApplicationStart()を思い出したいことを確認します。これを行うには、onrequestStart()の上部にあるコードの最初のブロックのすぐ下に次のように追加します。
<cfif not IsDefined("APPLICATION")
OR not StructKeyExists(APPLICATION, "[ClassName1]")
OR not StructKeyExists(APPLICATION, "[ClassName2]")
...>
<cfset onApplicationStart() />
</cfif>
私はまったく同じ問題を抱えていましたが、サーバーを起動した後に変更が反映されない場合、マシンを再起動する必要がありました。
私がしているのは、(管理者、キャッシング):1。すべてのキャッシュオプションをチェックしていません2.テキストボックスの値を「0」に設定します。変更をアップロードすると反映されませんが、「今すぐクリアテンプレートキャッシュ」を押します。
これは、WebサーバーXPに組み込まれたCF8で私のために機能しているものです。