2017-06-19 28 views
0

我有一個解決方案,它具有10-20個Web項目,我試圖使用msbuild webdeploy來部署它們。如何限制webdeploy連接號碼

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

不過,我得到這個錯誤在部署的中間:

C:\ Program Files文件(x86)的\的MSBuild \微軟\ VisualStudio的\ v14.0 \網絡\ Microsoft.Web。 Publishing.targets(4295,5):msdeploy錯誤ERROR_EXCEEDED_MAX_SITE_CONNECTIONS:Web部署任務失敗。 (聯繫這個網站的最大數量已超出。

在日誌中,這個錯誤之前,有幾個項目正在部署和文件進行了更新。這似乎的MSBuild正試圖儘可能多的項目部署。在同一時間成爲可能,並且超出了最大連接數

所以,我怎麼能限制連接數,有沒有發佈配置選項

更新 - ?解決方法

我在Sitecore鬆弛通道中找到了來自viet.hoang的解決方法。它基本上增加了服務器上的最大連接數和/或在發佈配置文件中重試嘗試。

  1. 增加最大連接數:去到目標服務器,並添加添加以下注冊表:[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ IIS擴展\ MSDeploy \ 3] 「MaxSiteConnections」= DWORD:00000010。然後重新啓動Web管理服務。
  2. 增加重試:在發佈配置有一個選項「RetryAttemptsForDeployment」,添加它並將其值設置爲20

的變通辦法,沒有更多的錯誤在部署中。但我仍然希望有人能夠提供一些見解和適當的解決方案,不需要修改註冊表,並且可以在不重試20次的情況下迅速拋出其他類型的錯誤。

回答

0

方法1-通過MSBuild限制連接

有一種方法可以限制MSBuild可以使用的線程數。

msbuild.exe mysln.sln /maxcpucount:3 

的「maxcpucount」限制的MSBuild線程,從而限制多少項目可以在同一時間發佈。如果沒有定義,MSBuild實際上會使用計算機上的處理器數量。

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

方法2 - 服務器

上提升限制註冊表值添加到服務器

[HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\ IIS擴展\ MSDeploy \ 3]

「MaxSiteConnections」(DWORD Value):0

然後重新啓動「Web管理服務」。

當您將註冊表值設置爲0時,表示無限連接。

參考:Nicolas_nguyen1在此評論Microsoft document