Основные сведения о приложении 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
,