У меня есть API ASP.NET Core 2.0 в качестве службы приложений Azure со слотом развертывания для QA, который я использую в течение нескольких месяцев. Я разрабатываю в VS2017 и публикую в Azure с помощью встроенного в проект компонента публикации в службе приложений Azure. Это работает нормально.
Сейчас я пытаюсь переместить развертывание на сервер развертывания Bamboo.
Обычно я следую процессу, аналогичному этой ссылке как использовать azure kudu zipdeploy с сервера развертывания Bamboo
В моей сборке Bamboo я запускаю сценарий Powershell для вызова dotnet publish, чтобы поместить файлы публикации в выходную папку, а затем заархивирую эти файлы в один zip-файл и использую его как артефакт. Затем в моем проекте развертывания Bamboo я ссылаюсь на этот артефакт и запускаю сценарий Powershell, который вызывает конечную точку Kudu с помощью Invoke-WebRequest, как показано ниже;
Invoke-WebRequest -Uri "https://userName:[email protected]/api/zipdeploy" `
-InFile zipfileName -ContentType "multipart/form-data" -Method Post -UseBasicParsing
Имя пользователя и UserPassword - это те, которые я получил из профиля публикации слота развертывания на портале Azure, ZipFileName - это zip-файл в артефакте, который представляет собой заархивированный опубликованный результат моего проекта.
Примечание. Я использую фактические значения в URL-адресе Kudu прямо сейчас, чтобы процесс работал без проблем, связанных с необходимостью обратной отметки свойств имени пользователя и пароля при передаче в качестве аргументов в Powershell, о которых другие сообщали при использовании Powershell для этого процесса. .
Когда скрипт запускается, я получаю следующее
StatusCode : 200
StatusDescription : OK
Content :
<!DOCTYPE html>
<html dir="ltr" class="" lang="en">
<head>
<title>Sign in to your account</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-eq...
RawContent : HTTP/1.1 200 OK
Pragma: no-cache
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
x-ms-request-id: 31607f18-c30a-46f3-bdaf-d84a...
Forms :
Headers : {[Pragma, no-cache], [Strict-Transport-Security, max-age=31536000; includeSubDomains],
[X-Content-Type-Options, nosniff], [X-Frame-Options, DENY]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml :
RawContentLength : 34599
Поскольку я получаю код состояния 200, я предполагаю, что он был загружен, но он не отображается в списке развертываний, когда я смотрю на конечную точку развертывания Kudu.
Насколько я понимаю, вы просто загружаете zip-файл в конечную точку Kudu zipdeploy, и он развертывается в указанном слоте развертывания Azure. Но когда я смотрю на даты файлов для сайта в Kudo, все они указывают на последнюю публикацию, которую я сделал в VS2017 неделю назад.
Очевидно, мне здесь чего-то не хватает.
Ответ от ZipDeploy, даже если он имеет статус 200, имеет текст «Войдите в свою учетную запись» в разделе «Заголовок» свойства «Заголовок». Я также вижу слово DENY (X-Frame-Options: DENY), но я не знаю, связано ли это с проблемой, которую я вижу.
Любые идеи?