Frage

Ich habe folgendes „Problem“. Ich habe eine Anwendung Kontextdatei für spring.net. Die Konfiguration sieht wie folgt aus:

<spring>
    <context>
        <resource uri="config://spring/objects"/>
    </context>
    <objects configSource="SpringObjects.config" />
</spring>

Mir wurde gesagt, dass, wenn Sie etwas zu dem Anwendungskontext ändern müssen Sie Ihre Anwendung nicht neu kompiliert wird die Änderungen zu sehen.

Wie auch immer, wenn ich etwas in die Konfigurationsdatei ändern. Es sind keine Änderungen zu sehen. Es ist immer noch die Originaldaten, die sichtbar ist.

Ich nenne das Anwendungskontext wie folgt aus:

IApplicationContext ctx = ContextRegistry.GetContext();
    ManagementConfigurator configurator = (ManagementConfigurator)ctx.GetObject("ManagementConfigurator");

Manchmal dauert es eine Weile, bis die Änderungen sichtbar sein (auch nach der App neu zu kompilieren).

EDIT: Ich habe gerade herausgefunden, dass Sie Ihren Anwendungspool neu starten. Ich werde umformulieren nur meine Frage ist dann: „Können Sie den Anwendungskontext innerhalb Sie Anwendung neu zu laden?“ Ohne den Anwendungspool neu zu starten.

War es hilfreich?

Lösung

Der Anwendungspool nicht neu gestartet werden muss, hat die AppDomain im Zusammenhang mit Ihrer Ausführung von Code recycelt werden. Ich weiß nicht, ob dies eine Option für Sie, aber wenn Sie die Feder Objekte in der Datei web.config setzen statt in einer separaten Datei, und Sie die Datei web.config ändern (indem zum Beispiel die Federkonfiguration innerhalb Ändern it), die AppDomain wird recycelt verbunden, was bedeuten soll auch, dass Ihre Anwendung wieder neu konfiguriert wird. Sie können auch ändern, nur Ihre SpringObjects.config Datei und ‚berühren‘ die web.config danach. (Ich bin nicht sicher, ob die SpringObjects.config im Verzeichnis ist Putting ist eine gute Idee, aber eine Änderung des Binärverezichnis verursacht auch eine AppDomain recycle)

Sie könnten die ContextRegistry Methoden (Clear, und dann RegisterContext) programmatisch die Application neu zu laden, obwohl ich würde es nicht empfehlen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top