如何限制webdeploy连接数,ERROR_EXCEEDED_MAX_SITE_CONNECTIONS
How to limit webdeploy connection number, ERROR_EXCEEDED_MAX_SITE_CONNECTIONS
我有一个包含 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 ERROR_EXCEEDED_MAX_SITE_CONNECTIONS: Web deployment task failed. (The maximum number of connections for this site has been exceeded.
在日志中,在此错误之前,正在部署一些项目并更新文件。 msbuild 似乎试图同时部署尽可能多的项目,并且超过了最大连接数。
那么如何限制连接数,发布配置文件中有选项吗?
更新 - 解决方法
我在 Sitecore slack 频道的 viet.hoang 中找到了解决方法。它基本上增加了服务器上的最大连接数 and/or 重试发布配置文件中的尝试。
- 增加最大连接数:转到目标服务器并将以下内容添加到注册表中:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy] "MaxSiteConnections"=dword:00000010。然后重新启动 Web 管理服务。
- 增加重试次数:在发布配置文件中有一个选项"RetryAttemptsForDeployment",添加它并将值设置为20。
解决方法有效,部署中不再出现错误。但我仍然希望有人能够提供一些见解和适当的解决方案,不需要修改注册表并且可以快速抛出其他类型的错误而无需重试 20 次。
方法 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]
"MaxSiteConnections" (DWORD Value) : 0
然后重启"Web Management Service".
当您将注册表值设置为0
时,表示无限连接。
参考:Nicolas_nguyen1在此Microsoft document
中的评论
我在 visual studio 2017 年通过网络部署主机时遇到了同样的问题。通过在线研究后,我找到了解决方案。请关注 link: https://youtu.be/nOonbx9FgJQ
我有一个包含 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 ERROR_EXCEEDED_MAX_SITE_CONNECTIONS: Web deployment task failed. (The maximum number of connections for this site has been exceeded.
在日志中,在此错误之前,正在部署一些项目并更新文件。 msbuild 似乎试图同时部署尽可能多的项目,并且超过了最大连接数。
那么如何限制连接数,发布配置文件中有选项吗?
更新 - 解决方法
我在 Sitecore slack 频道的 viet.hoang 中找到了解决方法。它基本上增加了服务器上的最大连接数 and/or 重试发布配置文件中的尝试。
- 增加最大连接数:转到目标服务器并将以下内容添加到注册表中:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy] "MaxSiteConnections"=dword:00000010。然后重新启动 Web 管理服务。
- 增加重试次数:在发布配置文件中有一个选项"RetryAttemptsForDeployment",添加它并将值设置为20。
解决方法有效,部署中不再出现错误。但我仍然希望有人能够提供一些见解和适当的解决方案,不需要修改注册表并且可以快速抛出其他类型的错误而无需重试 20 次。
方法 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]
"MaxSiteConnections" (DWORD Value) : 0
然后重启"Web Management Service".
当您将注册表值设置为0
时,表示无限连接。
参考:Nicolas_nguyen1在此Microsoft document
中的评论我在 visual studio 2017 年通过网络部署主机时遇到了同样的问题。通过在线研究后,我找到了解决方案。请关注 link: https://youtu.be/nOonbx9FgJQ