25

Wenn ich meine ASP.NET MVC-Anwendung veröffentliche, wird eine app_offline.htm-Datei erstellt, um die Website offline zu schalten, während sie die Website aktualisiert und die Datei löscht, sobald die Veröffentlichung erfolgreich ist.Benutzerdefinierte app_offline.htm-Datei während des Veröffentlichens

Das ist cool und ich mag die Idee wirklich, aber ich möchte meine eigene app_offline.htm-Datei erstellen, die der Veröffentlichungsaktion bekannt ist, und sie irgendwo dort platzieren, wo sie meine Entwicklungsseite nicht beeinflusst - dh sie tut es nicht Ich setze mich nicht in die Wurzel meiner Entwicklungsumgebung, sondern stelle sie ständig offline.

EDIT: Von den Kommentaren auf Scott Gu's post about app_offline.htm scheint es, dass die Anpassung der app_offline.htm Datei war nicht möglich mit VS 2005 - hat sich dies mit VS 2008 und jetzt VS 2010 geändert?

+0

"Aus den Kommentaren zu Scott Gu's Beitrag über app_offline.htm" verlinkt nicht wie erwartet, da ich auf der Seite nichts darüber sehe. –

+0

Ich weiß nicht, warum es nicht verlinkt ist, aber wenn Sie sich einen Kommentar von Scott Gu als Antwort auf Rich ansehen, den er am Freitag, den 01. Dezember 2006 um 12:56 Uhr gemacht hat, werden Sie sehen, was ich bin sprechen über. – Charlino

+0

Ich würde gerne die Antwort darauf wissen, ich möchte genau dasselbe tun. Es scheint, dass es für Microsoft sehr einfach wäre, es in einer zukünftigen Version zu implementieren, und es wäre tatsächlich sehr praktisch und praktisch. – Aaron

Antwort

0

Bereits 2006 sagte Scott Gu, dass es keine Möglichkeit gibt, die Datei anzupassen, die VS auf Publish generiert.

Comment within original article

ich dies bei der Lösung auch interessiert sein würde, aber ich konnte nichts endgültig im Gegenteil bei Google auftauchen.

-3

Haben Sie das gesehen?

App_Offline.htm

Es ist vielleicht nicht (genau), was Sie wollen, aber es löst das Problem, denke ich.

9

ich meine eigene

app_offline.htm_ 

Datei in der Lösung, die veröffentlicht wird. Mein Bereitstellungsskript benennt es dann um (Entfernen des nachfolgenden _), um es zu aktivieren.

Ich kann dann meine db-Skripte/tun was auch immer dann benennen Sie die Datei um die Website zurück.

+0

Wie entfernt Ihr Bereitstellungsskript den abschließenden Schrägstrich? Ist das Umbenennen der Datei im letzten Schritt eine manuelle Sache? – Charlino

+0

ich mache einfach app_offline.htm wie ich normalerweise (einfach html/css) und fügen Sie das zu meinem Projekt (aber genannt .htm_ so es nicht meine dev-Seite offline beim Debuggen). Stellen Sie sicher, dass Sie den Build-Typ auf Inhalt festlegen. Ich veröffentliche und lade den Code hoch, dann habe ich ein Deployment-Skript, das den Code kopiert und "app_offline.htm_" in "app_offline.htm" umbenennt.simples –

+1

Löscht das Deployment-Skript die Datei, wenn sie fertig ist? – Charlino

3

Sie können eine Batch-Datei verwenden, die den Compiler mit den aktuellen Verzeichnisinformationen als Parameter aufruft ... Anschließend kopiert sie app_offline.htm und kopiert die neue Datei. Führen Sie es aus, wo die Quelle ist.

Ich persönlich benutze ein Programm, das nur ein wenig ausgeklügelter als der Stapel ist und überprüft auch Hashs von Dateien, um festzustellen, ob sie eine neue zip-Dateien aktualisiert und extrahiert es auf dem Remote-Host und beseitigt Dateien, die wir bezeichnen für Komponententests beim Übergang vom Test zur Produktion. Ich habe SVN-Integration auch in meine Lösung integriert. Wenn Sie also für Test oder Produktion veröffentlichen, können Sie optional auch SVN verwenden. Das Programm wird auf einem Netzlaufwerk gespeichert und aus einer Batch-Datei auf dem lokalen PC mit den aktuellen Verzeichnisinformationen aufgerufen. Auf diese Weise müssen Entwickler nicht auf den neuen Deployer oder die app_offline aktualisieren, wenn irgendwelche Änderungen auftreten. Zum Schluss wird die app_offline entfernt.

Check out http://msdn.microsoft.com/en-us/library/system.web.compilation(v=vs.80).aspx für weitere Informationen oder http://msdn.microsoft.com/en-us/library/ms229863(v=vs.80).aspx, wenn Sie nur eine schnelle Charge machen!

Zusätzlich in der Post, die Sie anfänglich referenzierten und ich habe auch überprüft, dass Sie es tatsächlich ändern können, aber Sie ändern es für andere, die die Veröffentlichungseigenschaft außerdem verwenden. Deshalb hast du die Antwort erhalten, die du warst.

21

Ich weiß, dass das alt ist, aber da ich eine Lösung gefunden habe, nachdem ich hier gesucht habe, dachte ich, ich sollte eine Antwort geben.VS 11 hält die Veröffentlichung app_offline.htm Datei in diesem Ort:

C:\Users\[user]\AppData\Roaming\Microsoft\VisualStudio\11.0\app_offline.htm 

Ich habe das getestet und es angepasst und es funktioniert, wenn Sie diese Datei ändern. Der Nachteil ist natürlich, dass dies die Datei ist, die für das gesamte Web-Publishing verwendet wird.

+0

+1 Danke für die Antwort ... es ist keine Idee Lösung, aber wird für viele vorerst geeignet sein. Ich hoffe nur, das Visual Studio-Team baut etwas auf, scheint mir ein nettes Feature zu sein :-) – Charlino

+3

Leider habe ich gerade herausgefunden, dass VS sich entschieden hat, es einige Zeit später zu überschreiben. Ich stimme zu, es wäre schön, eine anpassbare Lösung zu haben – Eonasdan

+0

@Eonasdan Weißt du, was das Überschreiben verursacht? Update auf VS möglicherweise? – guanome

3

Andrew Ochsen Antwort funktioniert wie ein Charme! Es hängt jedoch davon ab, welches Visual Studio Sie verwenden.

C: \ Users \ Benutzername \ AppData \ Roaming \ Microsoft \ Visualstudio

ist das Verzeichnis, sollten Sie zunächst Land an, wählen Sie Ihre VS-Version [8.0/9.0 .....] und Bearbeiten Sie die app_offile.htm Datei. \ Users [Benutzer] \ AppData \ Roaming \ Microsoft \ VWDExpress \ 12.0

Dass man auf Ihre Bedürfnisse angepasst werden kann:

1

Für Benutzer von Visual Studio Express 2013 für das Web, wird die Datei im Verzeichnis C.

4

Eine einfache Lösung, die für viele geeignet erscheint, besteht darin, einfach eine eigene Datei mit dem Namen "app_offline.htm" zu Ihrer Lösung hinzuzufügen.

Ich habe diese Methode mit Visual Studio 2015 getestet, und es funktioniert tatsächlich.

Allerdings ist der einzige Nachteil, dass während des Publishing-Prozesses, der Standard erzeugte app_offline.htm Datei kopiert wird ersten, dann die Lösungsdateien in dem, was in zu sein scheint/in der Nähe alphabetisch sortiert.

Dies bedeutet, dass Ihre benutzerdefinierte app_offline.htm Datei schnell (aber nicht sofort) die vom System generierte Datei überschreibt. Daher könnte die (hässliche) systemgenerierte Kopie von app_offline.htm Anfragen innerhalb eines 1-2 Sekunden langen Fensters zum Initiieren der Veröffentlichung dienen, bevor sie mit Ihrer benutzerdefinierten Datei aktualisiert wird.

Der Veröffentlichungsprozess löscht automatisch den app_offline.htm vom Remote-Server unabhängig von seinem Inhalt oder Ursprung.

Der Vorteil ist (über das Ersetzen der Systemkopie), dass Ihre eigene Kopie portabel ist, automatisch lösungsspezifisch ist und mit Quellcodeverwaltung funktioniert.

Ich weiß, dass diese Frage alt ist, aber ich hoffe, dass dies anderen hilft, mit diesem Problem fertig zu werden.

+1

Interessant, muss es versuchen. Danke für die Antwort nach so langer Zeit. +1 – Charlino

Verwandte Themen