2017-06-19 30 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