
Mein Hosting-Unternehmen hat gerade meinen Server aktualisiert und meine Websites verschoben. Ich entwickle in Visual Studio und veröffentliche Websites in einem lokalen Ordner, den ich dann per FTP hochlade (mit FileZilla, falls das einen Unterschied macht).
Auf dem alten Server habe ich für jede Site eine Datei mit dem Namen _App_Offline.htm
im wwwroot
Ordner gespeichert. Als ich eine neue Version hochgeladen habe, habe ich diese in umbenannt App_Offline.htm
, wodurch IIS die Dateien freigeben konnte. Ich habe sie hochgeladen und dann die Datei wieder umbenannt. Das hat alles gut funktioniert.
Auf dem neuen Server kann IIS die Dateien nicht freigeben, wenn ich die Datei umbenenne. Ich kann die Änderungen also nicht hochladen. Ich habe versucht, die Website in meiner Systemsteuerung zu stoppen, aber das hat nicht geholfen. Ich habe versucht, den App-Pool zu stoppen. Normalerweise hilft das, aber der Neustart schlägt fast immer fehl. Es dauert mindestens 15 bis 20 Versuche, bis es neu gestartet wird.
Hat jemand Vorschläge, was hier das Problem sein könnte? Mir ist klar, dass es nicht viel gibt, woran ich mich orientieren kann, aber ich bin mir nicht sicher, was ich sonst noch sagen kann. Hier sind einige möglicherweise relevante Details …
- Windows Server 2022
- IIS 10
- Auf dem Server läuft Windows FTP
- Alle Sites sind .NET, entweder 6 oder 7, hauptsächlich Blazor, aber einige Razor-Seiten
Bitte geben Sie Bescheid, wenn ich weitere Informationen bereitstellen kann.
Danke
Antwort1
Kurioserweise können Sie die Dateien zwar nicht löschen oder überschreiben, wenn sie von IIS blockiert werden, Sie können sie jedoch umbenennen und die Site wird wie zuvor weitergeführt.
Eine Möglichkeit, dies zu umgehen, besteht darin, die kritischen Dateien umzubenennen (was meiner Erfahrung nach normalerweise nur die Haupt-DLL ist), dann die neue Version hochzukopieren und dann den Trick app_offline.htm zu verwenden, um die Website neu zu starten. Beim Neustart können Sie die (alten) umbenannten Dateien löschen.
In der Praxis können Sie die alten Dateien nicht immer sofort löschen. Wenn Sie sie jedoch umbenennen und ihnen das Präfix geben zzz
, werden sie am unteren Ende der Dateiliste außer Sichtweite verschoben und Sie können sie beim nächsten Hochladen löschen.
Insgesamt ist Ihr Zeitaufwand derselbe, aber anstatt app_offline.htm umzubenennen, hochzuladen und dann wieder umzubenennen, benennen Sie die DLL um, laden sie hoch und benennen app_offline.htm zweimal in schneller Folge um. Der Vorteil davon ist, dass Sie viel weniger Ausfallzeiten haben, im Grunde ist die Site nur so lange nicht erreichbar, wie Sie brauchen, um app_offline.htm umzubenennen und wieder umzubenennen.
Hoffentlich hilft das.