1

我有一个包含 10-20 个 Web 项目的解决方案,我正在尝试使用 msbuild webdeploy 来部署它们。

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

但是,我在部署过程中遇到了这个错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.Web.Publishing.targets(4295,5):msdeploy 错误 ERROR_EXCEEDED_MAX_SITE_CONNECTIONS:Web 部署任务失败。(已超出此站点的最大连接数。

在日志中,在此错误之前,正在部署一些项目并更新文件。似乎msbuild试图同时部署尽可能多的项目,并且超过了最大连接数。

那么如何限制连接数,发布配置文件中有选项吗?

更新 - 解决方法

我从 Sitecore 松弛频道中的 viet.hoang 获得了解决方法。它基本上增加了服务器上的最大连接数和/或重试发布配置文件中的尝试。

  1. 增加最大连接数:转到目标服务器并将以下内容添加到注册表中:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3] "MaxSiteConnections"=dword:00000010。然后重新启动 Web 管理服务。
  2. 增加重试次数:在发布配置文件中有一个选项“RetryAttemptsForDeployment”,添加它并将值设置为 20。

解决方法有效,部署中不再出现错误。但我仍然希望有人能够提供一些见解和适当的解决方案,不需要修改注册表,并且可以快速抛出其他类型的错误而无需重试 20 次。

4

2 回答 2

1

方法 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\Microsoft\IIS Extensions\MSDeploy\3]

“MaxSiteConnections”(DWORD 值):0

然后重新启动“Web 管理服务”。

当您将注册表值设置为 时0,表示无限连接。

参考:Nicolas_nguyen1 在此Microsoft 文档中的评论

于 2018-03-06T21:32:17.910 回答
0

当我从 Visual Studio 2017 通过 Web 部署托管时,我遇到了同样的问题。通过在线研究后,我遇到了一个解决方案。请点击链接:https ://youtu.be/nOonbx9FgJQ

于 2018-06-17T08:14:33.287 回答