ASP. NET Базовая публикация в Azure (подготовка) - PullRequest
1 голос
/ 27 января 2020

VS 2019 ASP. NET Core 3.1

Я разработал веб-приложение локально, и теперь я готов к развертыванию в Azure Staging Environment.

My Web Изначально приложение было Net (не Core), и у меня не возникло проблем с его развертыванием.

Как настроить процесс развертывания на использование «промежуточной» среды?

Мои параметры запуска. json содержит следующее:

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:59000",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

У меня есть appSettings.Staging. json, указывающий на промежуточную базу данных ...

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Warning"
    }
  },

  "ConnectionStrings": {
    "DbConnection": "Data Source=myapp.database.windows.net;Initial Catalog=MyAppCoreStaging;user id=myappstepadmin;password=mypassword;MultipleActiveResultSets=True"
  }
}

Но я не уверен, как сказать использовать Staging при развертывании.

В момент развертывания браузер запускается на странице, и я получаю:

HTTP Error 500.30 - ANCM In-Process Start Failure
Common solutions to this issue:
The application failed to start
The application started but then stopped
The application started but threw an exception during startup
Troubleshooting steps:
Check the system event log for error messages
Enable logging the application process' stdout messages
Attach a debugger to the application process and inspect
For more information visit: https://go.microsoft.com/fwlink/?LinkID=2028265

Есть ли что-то, что мне нужно настроить Azure использовать Staging?

Ответы [ 3 ]

2 голосов
/ 27 января 2020

Поскольку вы развертываете на Azure и не указали, что в качестве метода публикации вы используете конвейер CI / CD, я предполагаю, что вы используете профили публикации, предоставленные порталом Azure непосредственно в Visual Studio .

В диалоговом окне Publi sh нажмите «Правка» -> «Настройки» -> «Конфигурация» и выберите «Стадия»

. В вашем Program.cs ваш CreateWebHostBuilder (при условии, что вы используете * 1016). *. NET Core 3.0+; также возможно для 2.2, но это не IWebHostBuilder), вы можете указать, что файл appsettings должен зависеть от конфигурации вашего решения:

public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
        .UseStartup<Startup>()
        .UseEnvironment(Environment);

где Environment может быть свойством с директивами препроцессора:

public static string Environment
{
    get
    {
        string environmentName;
#if DEBUG
        environmentName = "development";
#elif STAGE
        environmentName = "staging";
#elif RELEASE
        environmentName = "production";
#endif
        return environmentName;
    }
}
1 голос
/ 27 января 2020

Если вы используете конвейер сборки, вы должны посмотреть на это.

steps:
- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: true
    arguments: '-o $(build.artifactstagingdirectory) /p:EnvironmentName=Staging'
0 голосов
/ 27 января 2020

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

"Server=MyServer;Database=MyDatabase;Persist Security Info=True;User ID=SA;Password=PASSWORD;MultipleActiveResultSets=True;"

Заменить источник данных сервером и исходный каталог с базой данных.

...