Не удается выполнить развертывание на веб-сайте Azure с помощью агента VSO.

Я пытаюсь развернуть несколько веб-сайтов в Azure с помощью новой функции выпуска и локального агента VSO.

Он развертывается на одном веб-сайте в Azure, но другие не работают, и я не вижу никакой разницы в их настройке: та же подписка, те же свойства, даже размещенные на той же виртуальной машине Azure...

Ошибка, которую я получаю, находится в журнале vso:

06:59:15.489161 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Looking for Azure PowerShell module at C:\Program Files (x86)\Microsoft SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1)
06:59:16.467323 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = AzurePSCmdletsVersion= 1.0.4)
06:59:16.485822 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Get-ServiceEndpoint -Name xxxxxxxx-c8b1-4f15-b59d-0d453e7bd3c5 -Context Microsoft.TeamFoundation.DistributedTask.Agent.Worker.Common.TaskContext)
06:59:17.029746 Process logging event with task handler.
06:59:17.029746 BaseLogger.LogStatus(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, scope.TimelineRecordId = 52fb11d3-73c4-4ac8-a975-88b832a486e8, record.Name = )
06:59:17.029746 Process logging event with task handler.
06:59:17.029746 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = subscription= BizSpark)
06:59:17.049540 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Get-X509Certificate -CredentialsXml <xml>)
06:59:17.139173 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = azureSubscriptionId= xxxxxxxx-d906-4f32-9eda-a51708827ea3)
06:59:17.139173 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = azureSubscriptionName= BizSpark)
06:59:17.139173 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = azureServiceEndpoint= https://management.core.windows.net/)
06:59:17.159043 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Set-AzureSubscription -SubscriptionName BizSpark -SubscriptionId xxxxxxxx-d906-4f32-9eda-a51708827ea3 -Certificate <cert> -Environment AzureCloud)
06:59:17.201634 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Select-AzureSubscription -SubscriptionId xxxxxx-d906-4f32-9eda-a51708827ea3)
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ConnectedServiceName= 28ab7968-c8b1-4f15-b59d-0d453e7bd3c5)
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = WebSiteName= my-azure-website)
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Package= d:\b\5581ca786\Complete Build\dotNetComponents\Reporting\obj\Release\Package\WebDeploy.zip)
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Slot= )
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = AdditionalArguments= )
06:59:17.268742 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = packageFile= Find-Files -SearchPattern d:\b\5581ca786\Complete Build\dotNetComponents\Reporting\obj\Release\Package\WebDeploy.zip)
06:59:17.268742 FindFiles.FindMatchingFiles(rootFolder = , matchPattern = d:\b\5581ca786\Complete Build\dotNetComponents\Reporting\obj\Release\Package\WebDeploy.zip, includeFiles = True, includeFolders = False
06:59:17.268742 FindFiles.GetMatchingItems(includePatterns.Count = 1, excludePatterns.Count = 0, includeFiles = True, includeFolders = False
06:59:17.268742 FindFiles.GetMatchingItems - Found: d:\b\5581ca786\Complete Build\dotNetComponents\Reporting\obj\Release\Package\WebDeploy.zip
06:59:17.279765 FindFiles.FindMatchingFiles - Found 1 matches
06:59:17.279765 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = packageFile= d:\b\5581ca786\Complete Build\dotNetComponents\Reporting\obj\Release\Package\WebDeploy.zip)
06:59:17.279765 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = Get-AzureWebSite -Name my-azure-website -ErrorAction SilentlyContinue -ErrorVariable azureWebSiteError -Slot production)
06:59:18.311104 Process logging event with task handler.
06:59:18.311104 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.Management.Automation.PSInvalidOperationException: There is no Runspace available to run scripts in this thread. You can provide one in the DefaultRunspace property of the System.Management.Automation.Runspaces.Runspace type. The script block you attempted to invoke was: $CurrentSession.ignoreCert)
06:59:18.311104 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult))
06:59:18.311104 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar))
06:59:18.311104 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   --- End of inner exception stack trace ---)
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   --- End of inner exception stack trace ---)
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccess(Task task))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Management.WebSites.WebSpaceOperationsExtensions.List(IWebSpaceOperations operations))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebSitesManagementExtensionMethods.GetFromAzure(IWebSiteManagementClient client, String website))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Commands.Utilities.Websites.WebsitesClient.GetWebsite(String name))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Commands.Websites.GetAzureWebsiteCommand.<GetByName>b__0())
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Commands.Websites.GetAzureWebsiteCommand.Do(Action call))
06:59:18.328418 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[warning]   at Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord())
06:59:18.347881 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = New-AzureWebSite -Name my-azure-website -Location North Europe -Slot production)
06:59:19.235932 Process logging event with task handler.
06:59:19.235932 BaseLogger.LogConsoleMessage(scope.JobId = 1ca0ac28-56bc-4bcb-8081-2b97efa19f68, message = ##[error]An error occurred while sending the request.)

ОБНОВЛЕНИЕ:

Мой «скрипт» выпуска выглядит следующим образом: введите здесь описание изображения

На мой взгляд, ничего особенного, но успешно развертывается только первый веб-сайт.

У меня есть одна сборка, которая компилирует одно решение с этими четырьмя веб-сайтами в виде пакетов веб-развертывания.

ОБНОВЛЕНИЕ 2. Работает (вроде как)

Хорошо, это может быть не так, как задумано, но оно работает:

  • У меня есть четыре сайта A, B, C и D.
  • Разверните A, B, C и D => A успешно, B, C и D не удается
  • Развернуть B, A, C и D => A и B успешно, C и D не удается
  • Развернуть C, B, A и D => A, B и C успешно, D не удается
  • Разверните D, C, B и A => A, B, C и D успешно!!!

Мне кажется, что сценарий развертывания выполняет какую-то магическую настройку только для первого веб-сайта?!?

Я очень надеюсь, что MS найдет эту ошибку, а тем временем это может помочь другим в той же ситуации.


person Casper Jensen    schedule 16.02.2016    source источник
comment
Вы пытаетесь развернуть несколько веб-сайтов в одной сборке? Можете ли вы предоставить дополнительную информацию о веб-приложениях и их конфигурации.   -  person Chris Patterson    schedule 16.02.2016
comment
Скажите, какая версия командлетов Azure PowerShell у вас установлена?   -  person Chris Patterson    schedule 16.02.2016
comment
Вы пытаетесь создать новые веб-сайты Azure во время развертывания? И установлено ли на агенте какое-либо программное обеспечение брандмауэра?   -  person Eddie Chen - MSFT    schedule 17.02.2016
comment
@ChrisPatterson: AzureWebPowerShellDeployment — это версия 1.0.23.   -  person Casper Jensen    schedule 18.02.2016
comment
@ Eddie-MSFT Я уже создал и настроил веб-сайты на портале Azure. Агент работает на стандартной виртуальной машине Azure (образ Win10), поэтому я не думаю, что это проблема с брандмауэром...   -  person Casper Jensen    schedule 18.02.2016
comment
@CasperJensen Согласно журналам, команда Get-AzureWebsite не удалась, и сценарий пытался создать новый веб-сайт. Можете ли вы запустить команду Get-AzureWebsite из агента, чтобы проверить, может ли она быть успешной? Ссылка для этой команды: msdn.microsoft.com/en-us/library /azure/dn495127.aspx   -  person Eddie Chen - MSFT    schedule 18.02.2016


Ответы (1)


Я думаю, проблема в установленном вами расширении FTP Uploader. У меня есть модифицированная версия этого в моей среде, поскольку она приводит к сбою любых действий веб-развертывания после нее в цепочке задач.

Повторный заказ маскирует основную проблему, но позволяет мне успешно разместить выпуск на всех веб-сайтах.

person GavinB    schedule 22.06.2016