2012-09-05 11 views
7

Kann jemand bestätigen (vorzugsweise mit einem Link zu Dokumenten), ob MSDeploy-Pakete vollständig hochgeladen werden, bevor die Dateien synchronisiert werden, oder findet die Synchronisierung zwischen Msdeploy.exe und Msdeploy.axd statt (wobei nur geänderte Dateien hochgeladen werden)?Wird das gesamte Paket auf MsDeploy.axd hochgeladen?

Oder, um es anders auszudrücken, wenn ich eine 1 GB-Paket zip haben, die nur 1 MB im Wert von geänderten Dateien enthält das gesamte 1GB Paket MsDeploy.axd und führen Sie die Synchronisierung auf dem Server oder wird es MSDeploy laden Laden Sie nur die geänderten Dateien im Wert von 1 MB hoch?

Antwort

3

aktualisiert werden muss Ist diese Dokumentation offizieller genug für Sie, dass vertrauen Das beobachtete Verhalten ist deterministisch?

http://www.iis.net/learn/publish/using-web-deploy/introduction-to-web-deploy

Abschnitt "Wie funktioniert Web Deploy auf FTP vergleichen?", Punkt 1:

Web Deploy schneller als FTP ist. Web Deploy gibt keinen anderen Befehl für jede Operation aus. Stattdessen führt er zu Beginn der Synchronisierung einen Vergleich durch und überträgt nur Änderungen.

+0

Sicher, warum nicht. Habe 215 Wiederholungen (mit 1 Minute Zeit!) –

1

Hier ist eine Antwort von einem Microsoft-Mitarbeiter auf eine ähnliche Frage: http://forums.asp.net/post/4361026.aspx

Auch hier ist ein sehr hilfreiches Dokument verfasst, das den Prozess, wie die Pakete Details zusammengebaut werden: http://blog.winhost.com/using-msdeploy-to-publish-your-site/

+0

Da MsDeploy.axd ein benutzerdefinierter Handler ist, gibt _is_ eine Möglichkeit für den Client zu wissen, welche Dateien hochgeladen werden. Ich schätze den Link zur Antwort des MS-Mitarbeiters, aber er ist immer noch mehrdeutig: Er besagt lediglich, dass die veröffentlichten Dateien inkrementell sein werden und nicht, ob alle Dateien an MsDeploy.axd geliefert werden. –

+2

Hallo Richard.Web Deploy führt die inkrementelle Synchronisierung in zwei Teilen aus, sodass im ersten Teil nur Metadaten über den Dateiinhalt im Paket gesendet werden, um festzustellen, welche Dateien tatsächlich aktualisiert werden müssen, sodass im zweiten Teil nur diese inkrementellen Updatedateien über die Leitung gesendet werden. Grundsätzlich werden Metadaten über jede Datei (wie Name, Größe, Schreibzeit) über die Leitung gesendet, aber der eigentliche Dateiinhalt ist nicht, es sei denn, die Datei muss aktualisiert werden. – krolson

+0

@krolson - Als jemand aus dem IIS-Team klassifizieren Sie sich vollständig als kanonische Quelle. Können Sie Ihren Kommentar als Antwort auf die Frage hinzufügen (anstatt einen Kommentar zu Gilletys Antwort) und ich werde es als "die Antwort" markieren. (Ich hatte ein Kopfgeld in dieser Frage, also hast du 215 Wiederholungen um 4 Tage verpasst!) –

1

Da es schwierig, Wenn MSDeploy über einen Proxy läuft, habe ich den Prozess durch die Verwendung einer riesigen Datei (750 MB) deutlicher gemacht.

Für den Agent Service (http://localhost:80/MsDeployAgentService), kann ich bestätigen, dass es nicht das gesamte Paket hochladen. Wenn ich die Datei vom Server (localhost) entferne, dauert die Bereitstellung ~ 25 Sekunden. Sobald die Datei bereits vorhanden ist, erfolgt die Bereitstellung fast sofort. Angesichts meiner Maschinenspezifikationen gibt es keine Möglichkeit, 750 MB in den Speicher zu übertragen (geschweige denn über HTTP übertragen).

Update Ich kann auch das gleiche Verhalten bei der Bereitstellung zu einem Remote- (wenngleich das gleiche Netzwerk) MsDeploy.axd Service bestätigen. Die anfängliche Bereitstellung war 50 Sekunden, die nächste Bereitstellung war < 1 Sekunde.

Update 2 Kristina Olson von dem IIS-Team dies in her comment bestätigt:

Web Deploy hat seine inkrementelle Synchronisierung in zwei Teilen, so in dem 1. Teil sendet sie nur Metadaten über den Dateiinhalt im Paket um zu bestimmen, welche Dateien tatsächlich aktualisiert werden müssen, so dass im zweiten Teil nur diese inkrementellen Update-Dateien über die Leitung gesendet werden. Grundsätzlich Metadaten über jede Datei (Dinge wie Name, Größe, schreibt Zeit) über den Draht geschickt, aber der tatsächliche Dateiinhalt ist nicht, wenn die Datei