12 Stimmen

ColdFusion Server CFC Caching Problem

Ich entwickle ColdFusion-Anwendungen auf meinem Laptop mit einem eigenen ColdFusion 8-Server mit IIS, der unter Windows Vista läuft. Ich habe ein ziemlich lästiges Problem.

Das Problem ist, dass, wann immer ich Änderungen an meinen CFCs vornehme, es scheint, dass die Änderungen an meinen CFCs nicht wirksam werden, solange ich meinen ColdFusion Application Server nicht neu starte. Oftmals muss ich meinen gesamten Rechner neu starten, weil Windows den ColdFusion Application Server-Dienst nicht neu starten kann. Gibt es eine bessere Möglichkeit, den CFC-Cache des ColdFusion-Servers zurückzusetzen?

Das fängt an, viel Zeit zu verschlingen, weil ich immer wieder neu starten muss, nachdem ich eine Änderung vorgenommen habe. Jede Einsicht würde sehr geschätzt werden!

Ich danke Ihnen!

0 Stimmen

Sind sie in Ihrem Anwendungsbereich? Ist die Option "Klassendateien speichern" unter Servereinstellungen > Caching aktiviert?

0 Stimmen

Speichern Sie sie in einem dauerhaften Bereich? Sitzung/Server/etc.?

0 Stimmen

Prüfen Sie unter Admin > Daten & Dienste > Webdienste, ob die cfcs sich selbst als Webdienste registrieren. Wenn ja, löschen Sie sie von diesem Bildschirm und sehen Sie, ob das hilft.

10voto

Ryan Guill Punkte 13188

Ich garantiere Ihnen, dass Sie diese Objekte in einer Art dauerhaftem Bereich erstellen, z. B. in einem Anwendungs- oder Sitzungsbereich. Um dieses Problem während der Entwicklung zu vermeiden, erstelle ich in der Regel einen URL-Parameter und überprüfe diesen in der Datei application.cfm/cfc (oder wo auch immer Sie die Objekte erstellen) und erstelle die Objekte neu, wenn dieser URL-Parameter erkannt wird.

Ejemplo:

<cfif NOT structKeyExists(application,"myObj") OR structKeyExists(url,"reinit")>
    <cfset application.myObj = createObject("component","path.to.cfc") />
</cfif>

Natürlich müssen Sie dies mit jedem Objekt tun, mit dem Sie ein Problem haben.

0 Stimmen

Das bereitet mir schon so lange Kopfzerbrechen. Ich wusste nicht, dass das Setzen von etwas in den Anwendungsbereich den Code tatsächlich speichert. ich dachte, es würde nur die Metadaten des Objekts speichern. danke!

1voto

Faisal Abid Punkte 8382

Ich bin nicht sicher, ob dies in anderen Versionen von CF auch ist, aber in CF9 können Sie ApplicationStop() tun und es wird die CFApplication zurückgesetzt und neu geladen.

0 Stimmen

Das ist genau das, was ich brauche! Aber ich benutze CF8. Seine nicht in dieser Version unterstützt :(

1voto

chung lee Punkte 11

Deaktivieren Sie "Komponenten-Cache" in CFAdmin --> Caching

Überprüfen Sie auch CFAdmin --> Mappings und stellen Sie sicher, dass der CFC-Ordner auf den richtigen verweist, falls vorhanden. Manchmal klonen Leute ihren Quellcode und ändern die Zuordnung zum neuen Ordner nicht.

0voto

Dan Sorensen Punkte 10945

Haben Sie in Ihrem Coldfusion-Administrator eine der folgenden Optionen aktiviert (angekreuzt)?

Caching > Vertrauenswürdiger Cache

Caching > Klassendateien speichern

0voto

Phillip Senn Punkte 44773

Ich frage nur das Offensichtliche: Rufen Sie diese Funktionen von onApplicationStart aus auf?

0 Stimmen

Nein, die Funktionen werden nicht beim Anwendungsstart aufgerufen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X