2017-06-19 6 views
0

Ich habe eine Lösung mit 10-20 Webprojekten, und ich versuche, sie mit msbuild webdeploy zu implementieren.Beschränken der Webdeploy-Verbindungsnummer

msbuild "mysolution.sln" /p:DeployOnBuild=true /p:PublishProfile="Debug" 

Jedoch habe ich diesen Fehler in der Mitte des deploy:

C: \ Program Files (x86) \ MSBuild \ Microsoft \ Visualstudio \ v14.0 \ Web \ Microsoft.Web. Publishing.targets (4295,5): Fehler msdeploy ERROR_EXCEEDED_MAX_SITE_CONNECTIONS: Webbereitstellungstask ist fehlgeschlagen. (Die maximale Anzahl der Verbindungen für diese Seite wird überschritten.

Im Protokoll vor diesem Fehler wurden einige Projekte eingesetzt werden und Dateien wurden aktualisiert. Es scheint, dass msbuild versucht, so viele wie Projekte bereitstellen . zur gleichen Zeit wie möglich, und überschritt die maximale Verbindungsnummer

so wie kann ich die Verbindungsnummer zu begrenzen, ist es eine Option im Profil veröffentlichen

Update -? Abhilfe

Ich habe einen Workaround von viet.hoang im Sitecore Slack Channel. Es erhöht im Grunde die maximale Verbindungsnummer auf dem Server und/oder wiederholt Versuche im Veröffentlichungsprofil.

  1. Zunahme max Verbindungsnummer: Gehen Sie auf dem Zielserver und fügen Sie das Hinzufügen von folgenden in der Registrierung: [HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ IIS Extensions \ MSDeploy \ 3] "MaxSiteConnections" = dword: 00000010. Starten Sie dann den Webverwaltungsdienst neu.
  2. Zunahme Wiederholungsversuche: Im Publizierungsprofil eine Option „RetryAttemptsForDeployment“ ist, fügen Sie ihn und den Wert auf 20.

Die Abhilfe funktioniert gesetzt, nicht mehr Fehler in der Implementierung. Aber ich bin immer noch hoffnungsvoll, dass jemand in der Lage sein wird, einige Einsichten und eine richtige Lösung zu liefern, die keine Änderung der Registrierung erfordert und andere Arten von Fehlern schnell auslösen kann, ohne es 20 mal wiederholen zu müssen.

Antwort

0

Methode 1 - Limit Verbindung über MSBuild

Es gibt einen Weg, wie viele Fäden MSBuild verwenden kann, zu begrenzen.

msbuild.exe mysln.sln /maxcpucount:3 

Die „maxcpucount“ begrenzt die Fäden MSBuild, so begrenzen, wie viele Projekte zur gleichen Zeit veröffentlicht werden. Wenn es nicht definiert ist, wird MSBuild tatsächlich bis zu der Anzahl der Prozessoren auf dem Computer verwenden.

Referenz: https://msdn.microsoft.com/en-us/library/bb651793.aspx

Methode 2 - Hubbegrenzung auf dem Server

einen Registrierungswert an den Server hinzufügen

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ IIS Extensions \ MSDeploy \ 3]

"MaxSiteConnections" (DWORD-Wert): 0

Starten Sie dann "Web Management Service" neu.

Wenn Sie den Registrierungswert auf 0 festlegen, bedeutet dies eine unbegrenzte Verbindung.

Referenz: Nicolas_nguyen1s Kommentar in diesem Microsoft document