Kubernetes'te çalışan ortam değişkenlerini kullanmak ve appsettings'e geri dönmek için.NET Core 3.1 uygulaması.ortam değişkeni ayarlanmadığında json

0

Soru

. NET Core 3.1 uygulamamın Kubernetes'te çalışırken ortam değişkenlerini kullanmasını ve geri dönmesini sağlamaya çalışıyorum appsettings.json ortam değişkeni orada ayarlanmadığında.

Bu kullanarak benim olduğumu ConfigureServices başlangıç dosyasındaki yöntem

var configuration = new ConfigurationBuilder()
                                    .AddEnvironmentVariables()
                                    .Build();
var dbname = configuration.GetSection("DB_NAME").Value;

Benim appsettings.json dosyada bu var

{
    "AppSettings": {
        "Data": {
            "DB_NAME":"test_db"
        }
    }
}

Komut isteminde aşağıdaki komutu kullanarak ortam değişkenini ayarlıyorum.

setx DB_NAME ="Kube_test_db"

Uygulamayı Visual Studio'da çalıştırdığımda db adını şu şekilde alıyorum Kube_test_db. Windows 10 sistem ayarlarında Kullanıcı ortam değişkenini sildiğimde ve uygulamayı Visual Studio'da yeniden çalıştırdığımda, bu satır null değerini döndürür.

var dbname = configuration.GetSection("DB_NAME").Value;

Tanımlanan değere geri dönmek için değeri almak için neyi kaçırıyorum appsettings.json dosya?

1

En iyi cevabı

0

Kullanmak .AddJsonFile.

Ve aramadan önce yap .AddEnvironmentVariables(). Öyle gibi:

        new ConfigurationBuilder()
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables()
            .Build();
2021-11-26 17:49:28

İhtiyacım olan yerde configure yönteminde hostingEnvironment alamıyorum. Ayrıca, değiştirmem gerekecek var dbname = configuration.GetSection("DB_NAME").Value; -e doğru var dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; appsettings değerini almak için.json. Bu, yalnızca ortam değişkeni ile eşleşmiyor DB_NAME. Ortam değişkenini şu şekilde koyarsam Appsettings:Data:DB_NAME ve kodu şu şekilde çalıştırın dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; sonra hala appsettings'den değeri alıyorum.json ve çevreden değil.
user20358

Kullanmak __ ortam değişkenlerini ayarlamak için ayırıcı olarak (2 alt çizgi): docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/...
omajid

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................