Веб-развертывание с TeamCity завершилось с ошибкой ERROR_EXCEEDED_MAX_SITE_CONNECTIONS

Я развертываю сайт через Teamcity, используя метод webdeploy:

web.csproj/P:Configuration=%env.Configuraton%/P: DeployOnBuild = True/P: DeployTarget = MSDeployPublish/P:MsDeployServiceUrl=%env.DeployServiceUrl%/P: AllowUntrustedCertificate = True/P: MS: CreatePackageOnPublish = True/P:UserName=%env.DeployUserName%/P:Password=%env.DeployPassword%

Я получаю ошибку постоянно:

[MSDeployPublish] VSMSDeploy (35 с) [VSMSDeploy] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.5\Web\Microsoft.Web.Publishing.targets(4196, 5): ошибка ERROR_EXCEEDED_MAX_SITE_CONNECTIONS: веб-задача развертывания не удалось. (Максимальное количество подключений для этого сайта было превышено. Подробнее читайте по адресу: http://go.microsoft.com/fwlink/?LinkId=221672#ERROR_EXCEEDED_MAX_SITE_CONNECTIONS.)

На агенте Teamcity установлена Visual Studio 2010 Express, версия фреймворка.netf: 4.0

Ответ 1

Я исследовал проблему на обоих концах: хостинг веб-сервера и сборки (Visual Studio 2010 Express SP1, установленный из веб-установщика), из которого я запускаю развертывание. Перезапуск сервера городской команды и агентов (проблема, воспроизведенная на 2 агентах) не помогла. Я установил агент группы города на локальную машину и успешно развернулся от него. Затем я сравнивал успешные и неудачные журналы построения. Интересной частью является источник ошибки:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\V10.5\Web\Microsoft.Web.Publishing.targets

На моей локальной машине (Visual Studio Ultimate 2010 с пакетом обновления 1) есть только

MSBuild\Microsoft\VisualStudio ** v10 **\Web\Microsoft.Web.Publishing.targets

поэтому мое быстрое решение заключалось в тестировании развертывания с использованием этого метода для агентов сборки. Я заменил содержание

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.5\Web\

с

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10\Web\

и это решило проблему. Я не знаю, почему, но развертывание ранее работало над агентами сборки.

Ответ 2

Я исправил эту проблему, перезапустив Web Management Service в Сервисы.

Ответ 3

Я также сталкивался с этим подходом, чтобы разрешить неограниченное количество соединений:

1.) Добавьте следующий раздел реестра:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3]
"MaxSiteConnections"=dword:00000000

2.) Перезапустите веб-сервис управления

Ссылка: Nicolas_nguyen1 комментарий к этому документу Microsoft

Источник: Как ограничить номер подключения веб-развертывания, ERROR_EXCEEDED_MAX_SITE_CONNECTIONS

ОБНОВИТЬ

Я смог протестировать это сам, и казалось, что Web Deploy воспринимал это значение как буквально "0" разрешенных соединений, что приводило к тому, что эта ошибка возникала каждый раз. Поэтому я установил его на 0x7FFFFFFF (максимум для 32-разрядного целого числа).

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IIS Extensions\MSDeploy\3]
"MaxSiteConnections"=dword:7FFFFFFF

Ответ 4

У меня была такая же проблема сегодня в новой сборке TeamCity, которую я настраивал. Сборки используют Web Deploy для публикации двух приложений MVC4 для тестирования серверов в локальной сети по ночному расписанию.

В моем случае ошибка произошла из-за того, что опция " Сборка триггера на всех включенных и совместимых агентах " была отмечена в триггере расписания сборки в TeamCity. У нас есть четыре агента сборки, и проверка этой опции запускает четыре сборки одновременно. Две сборки были ERROR_EXCEEDED_MAX_SITE_CONNECTIONS а две - ошибкой ERROR_EXCEEDED_MAX_SITE_CONNECTIONS.

Ответ 5

Я также столкнулся с этой ошибкой, и я исследовал два способа ее решения. Это мой оригинальный вопрос, но я думаю, что этот вопрос легче найти, чем мой, поэтому я опубликую свои выводы здесь, чтобы помочь другим: fooobar.com/questions/13904655/...

Метод 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

Затем перезапустите "Служба веб-управления".

Когда вы устанавливаете значение реестра в 0, это означает неограниченное соединение.

Ссылка: комментарий Nicolas_nguyen1 в этом документе Microsoft