Основные сведения о приложении ASP.NET Core Environment appsettings.json

Я пытаюсь настроить Application Insights в приложении ASP.NET, работающем в Service Fabric.

Это хорошо работает на моем устройстве dev, когда настройки следующие в appsettings.json:

"ApplicationInsights": {
    "InstrumentationKey": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

У меня также есть файл appsettings.Production.json со следующими настройками:

"ApplicationInsights": {
    "InstrumentationKey": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
}

Но по какой-то причине, когда я публикую приложение в производственной среде, приложение продолжает публиковать в ключе Application Dev Insights xxxx-xxx-xxx...... Похоже, ключ Insight для производственного приложения не используется.

У меня есть следующие настройки в Startup.cs:

var builder = new ConfigurationBuilder()
            .SetBasePath(env.ContentRootPath)
            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
            .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
            .AddEnvironmentVariables();

Кроме того, переменная ASPNETCORE_ENVIRONMENT на моих узлах не задана (что означает, что по умолчанию используется Production). Чтобы убедиться, я вывожу значение среды в View, чтобы убедиться, что он отображает "Production"

Что я делаю неправильно?

Я пытался следить за этим постом: Asp.Net Core и Application Insight в VS2017 - несколько сред, но я не мог этого понять.

Hooroo

1 ответ

См. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.1. Основываясь на этой статье, appsettings.json заменяет окружающую среду appsettings.<environment>.json файлы. Так что в вашем случае просто переименуйте ваш по умолчанию appsettings.json в appsettings.development.json,

Другие вопросы по тегам