Как развернуть приложение Blazor в Azure с помощью DevOps Azure - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть приложение Blazor, которое я создаю и хочу развернуть с помощью DevOps Azure. Пока что это приводит к ошибке запуска 500.30 после развертывания при развертывании через Azure, но это работает, когда я развертываю напрямую из Visual Studio через Web Deploy.

Это пример моей задачи по развертыванию:

steps:
- task: AzureRmWebAppDeployment@4
  displayName: 'Deploy Azure App Service'
  inputs:
    azureSubscription: '$(Parameters.ConnectedServiceName)'
    appType: '$(Parameters.WebAppKind)'
    WebAppName: '$(Parameters.WebAppName)'
    packageForLinux: '$(System.DefaultWorkingDirectory)/**/*Server.zip'
    JSONFiles: '**/appsettings.json'

У меня есть другое ядро ​​asp.net WebApp (только одно с бритвенными страницами) в том же решении, которое было создано и опубликовано стот же конвейер раньше. Когда я публикую этот zip-файл через тот же конвейер, он будет работать как положено.

Я проверил через FTP, чтобы увидеть, в чем разница, и заметил, что я не вижу файлы из развертывания через Azure. Но когда они опубликованы через Visual Studio, они находятся в wwwroot. Должен ли я что-то настраивать специально для Blazor?

РЕДАКТИРОВАТЬ: я узнал, что проблема в моем файле startup.cs. Причина, по которой я не вижу файлы, вероятно, связана с системой разрешений папки. Я также узнал, что могу получить дамп с лог-файлами и журналом событий, где дополнительная информация находится через Kudu: enter image description here

1 Ответ

1 голос
/ 30 сентября 2019

Поскольку мой вопрос был сформулирован в широком смысле, ответ здесь двоякий:

Как получить дополнительную информацию об этой ошибке

Как указывает Microsoft в документ устранения неполадок эта ошибка возникает, когда приложение не может запуститься. Что касается основного приложения Asp.Net, это также включает в себя все, что происходит в классах programm.cs и startup.cs. Как уже указывалось, вы можете увидеть больше информации в stdout (если он включен) или в журнале событий. Чтобы получить доступ к ним, перейдите в раздел «Инструменты Advances» и либо перейдите в «Debug Console -> CMD», где вы можете увидеть все файлы, либо в «Tools -> Diagnostic» Dump to Download Zip, который содержит (среди прочего) эти два файла. В обоих случаях он находится в папке LogFiles.

enter image description here

Исправление сбоя

Теперь в файле журналаон утверждает, что не может найти указанный файл. В моем случае это был сертификат, который я пытался загрузить с помощью следующей строки кода:

var cert = new X509Certificate2(Path.Combine(_environment.ContentRootPath, "Example.pfx"), "MyPassword");

Как я выяснил через другой вопрос SO, если вы развертываете через Azure DevOps в Azure, вы должны установить соответствующий KeyStore. Флаги. С корректировкой к этому коду он работает как положено:

    var cert = new X509Certificate2("Example.pfx", "MyPassword",
                                    X509KeyStorageFlags.MachineKeySet |
                                    X509KeyStorageFlags.PersistKeySet |
                                    X509KeyStorageFlags.Exportable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...