ฉันกำลังพยายามที่จะทำให้ฉัน.อข่ายนอกจากแกนดา 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
แฟ้มหรือไม่?
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 และไม่ใช่จากสภาพแวดล้อม.