Was passiert, wenn ich web.config bearbeite?

79

Ich muss die Datei web.config in einer Live-Sharepoint-Umgebung bearbeiten, bin mir jedoch nicht sicher, was in diesem Fall passieren wird (ich möchte benutzerdefinierte Fehler ausgeben).

Wird dies dazu führen, dass der IIS6-Arbeitsprozess recycelt wird?

Verlieren aktive Benutzer dadurch ihren Sitzungsstatus?

Oder kann ich die Datei sicher bearbeiten?

Willem
quelle
Sie können Sitzungen definieren, die auf einem Remotecomputer platziert werden sollen, damit das Zurücksetzen der Anwendung nicht zum Verlust der Sitzung führt
Kamarey,

Antworten:

78

Der Anwendungspool wird neu gestartet und der Sitzungsstatus geht verloren. Stellen Sie sich vor, jede ASP.NET-Anwendung (wie in IIS definiert) ist ein Programm auf dem Desktop. Wenn Sie web.config speichern, wird das Programm ähnlich geschlossen und erneut geöffnet.

Dan Goldstein
quelle
10
Ich bin mir bei IIS6 nicht sicher, aber in IIS7 und IIS8 ist dies das Standardverhalten. Sie können es jedoch über Anwendungspools> Erweiterte Optionen> Recycling> Recycling für Konfigurationsänderungen deaktivieren = true ändern. Dies ist beispielsweise für Produktionsumgebungen hilfreich, damit die Administratoren können Änderungen vornehmen, die erst beim nächsten Recycling wirksam werden müssen. Insbesondere mit Sharepoint gibt es eine Möglichkeit, die Änderungen so zu planen, dass sie zu einem bestimmten Zeitpunkt angewendet werden.
nichts ist
3
@nothingisnecessary Aber führt das Festlegen Application Pools > Advanced Options > Recycling > Disable recycling selbst dazu, dass ein App-Pool recycelt wird? Schildkröten den ganzen Weg nach unten?
RedFilter
1
Hallo @DanGoldstein. Sie erwähnen " etwas Ähnliches " wie das Schließen des Programms und das erneute Öffnen. Was ist mit dem statischen Zustand? Wird sichergestellt , dass der statische Status durch eine Bearbeitung von web.config gelöscht wird? Der Grund ist, dass ich einige web.config-Sachen in statischen Variablen zwischenspeichere.
Dirk Boer
Ehrlich gesagt bin ich keine gute Informationsquelle mehr darüber. Als ich antwortete, benutzte ich IIS und ASP.Net in Vollzeit. Ich bin heutzutage nur ein Hobby-Softwareentwickler.
Dan Goldstein
@DirkBoer Der ganze Grund, warum ich hier bin, ist, die endgültige Antwort auf Ihre Frage herauszufinden. Nach meiner Erfahrung wirkt sich das Bearbeiten der web.config nicht auf statische Eigenschaften aus.
Alex Dresko
9

Auch wenn der Sitzungsstatus als nicht pro Prozess (Datenbank oder Dienst) konfiguriert ist, verliert das Recycling des App-Pools keinen Sitzungsstatus. Dies gilt für Sharepoint ebenso wie für Vanilla ASP.Net.

piers7
quelle
2

Wenn Sie die Datei web.config bearbeiten, wird die AppDomain (NICHT AppPool) dieser Webanwendung neu gestartet und alle belegten Ressourcen und Speicher gelöscht. Andere Webanwendungen, die unter diesem App-Pool ausgeführt werden, sind daher nicht betroffen. Außerdem werden die Sitzungen (In-Proc) und der Speichercache gelöscht.

Jay Shah
quelle
1

Wie bereits von einigen Personen erwähnt: Der Anwendungspool der Site in IIS wird neu gestartet (dies dauert normalerweise einige Sekunden). Infolgedessen sind die nächsten Seitenanforderungen langsamer (da nichts mehr zwischengespeichert wird). Auch der Sitzungsstatus der Benutzer geht verloren. ABER im WSS-Sitzungsstatus wird standardmäßig nicht verwendet, in MOSS wird es von InfoPath Form Services verwendet. Es kann also sein, dass Sie keine großen Probleme im Zusammenhang mit dem Verlust des Sitzungsstatus haben.

Auf der anderen Seite; Um diese Probleme zu beheben: In der Regel wird eine SharePoint-Lösung (WSP) erstellt, die einen Timer-Job bereitstellt und startet, um die Änderungen an der web.config aus dem Code heraus vorzunehmen (mithilfe der SPWebConfigModification-Klasse des Objektmodells). Das Schöne ist, dass Sie die Ausführung der Änderung planen können, damit Ihre Benutzer sie nicht bemerken.

Jan Tielens
quelle