.อข่ายนอกจากแกนดา 3.1 แอพที่จะใช้ตัวแปรสภาพแวดล้อมวิ่งอยู่ใน Kubernetes และสำหรับการใช้งานต่อเนื่องต้อง appsettings.language เมื่อตัวแปรสภาพแวดล้อมไม่มีที่อยู่เชื่อมโยงใดๆ

0

คำถาม

ฉันกำลังพยายามที่จะทำให้ฉัน.อข่ายนอกจากแกนดา 3.1 แอพที่จะใช้ตัวแปรสภาพแวดล้อมตอนที่วิ่งอยู่ใน Kubernetes และสำหรับการใช้งานต่อเนื่องไป appsettings.json ตอนที่ตัวแปรสภาพแวดล้อมไม่มีการตั้งค่านั้น

ฉันใช้มันในของฉัน ConfigureServices วิธีการอยู่ในเมื่อเริ่มการทำงานแฟ้ม

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

ของฉัน appsettings.json แฟ้มนี้

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

ฉันเป็นการตั้งค่าตัวแปรสภาพแวดล้อมโดยใช้ทำตามคำสั่งอยู่บคำสั่งให้แจ้งเตือน.

setx DB_NAME ="Kube_test_db"

ตอนที่ฉันวิ่งแอพฯอยู่ในราสตูดิโอ,ฉันเข้าใจที่ db ชื่อของมือ Kube_test_db. ตอนที่ฉันลบผู้ใช้ตัวแปรสภาพแวดล้อมบนหน้าต่างต่างๆ 10 ของระบบการตั้งค่าแล้วหนีที่แอพอีกครั้งในมองเห็นสตูดิโอ,บรรทัดนี้จะได้ค่าโพรโทคอล aimcomment.

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

แล้วฉันหายไปเข้าค่ายถอยกลับมาเพื่อสิ่งที่ถูกกำหนดอยู่ใน appsettings.json แฟ้มหรือไม่?

1

คำตอบที่ดีที่สุด

0

ใช้ .AddJsonFile.

และทำมันก่อนที่คุณโทรหา .AddEnvironmentVariables(). เหมือนแล้ว:

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

ฉันไม่ได้ hostingEnvironment ในการปรับแต่งวิธีการที่ฉันต้องการมัน ยังฉันจะต้องเปลี่ยนแปลง var dbname = configuration.GetSection("DB_NAME").Value; ต้อง var dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; จะได้ค่าจาก appsettings.language. นี่มันไม่ตรงกับตัวแปรสภาพแวดล้อมซึ่งเป็นเท่านั้น DB_NAME. ถ้าฉันวาสภาพแวดล้อมตัวแปรเป็น Appsettings:Data:DB_NAME แล้วก็วิ่งรหัสเป็น dbname = configuration.GetSection("Appsettings:Data:DB_NAME").Value; แล้วฉันยังคงได้ค่าจาก appsettings.language และไม่ใช่จากสภาพแวดล้อม.
user20358

ใช้ __ (2 underscores)เป็นเครื่องหมายแยกเลขหลักสำหรับ การตั้งค่า ในตัวแปรสภาพแวดล้อม: docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/...
omajid

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

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

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่