Pertanyaan Mengelola beberapa file web.config untuk aplikasi Azure MVC3


Saya memiliki aplikasi ASP.NET MVC 3 yang berjalan di Azure. Ia juga menggunakan SQL Azure untuk database.

Saya ingin menerapkan Aplikasi ini ke berbagai contoh (Pengujian, Demo, beberapa Productions) dan setiap instance memerlukan basis data SQL uniknya sendiri.

Saya tahu bahwa dengan pembaruan Azure Tools baru, Anda dapat mengelola Beberapa Konfigurasi Layanan. Ini hebat dan hampir memecahkan masalah saya. Satu-satunya masalah adalah dengan string koneksi SQL di file web.config di bagian MVC proyek.

Saya ingin fungsi yang sama persis dengan fitur Konfigurasi Layanan Berganda, tetapi melakukannya untuk string koneksi SQL.

Terima kasih atas bantuan Anda!!


5
2018-03-09 02:34


asal


Jawaban:


Transformasi konfigurasi .Net harus melakukan pekerjaan itu. Seperti Azure Service Configurations, file Web.ConfigurationName.config yang terpisah dibuat untuk setiap instance yang ingin Anda terapkan. Membangun solusi dengan Konfigurasi yang tepat (Testing, Demo, dll.) Akan memasukkan nilai konfigurasi "instance" yang benar ke dalam Web.config.


5
2018-03-09 03:04



Saya biasanya menyimpan string koneksi SQL saya di ServiceDefinition. *. File cscfg. Dengan cara itu Anda mendapatkan keuntungan tambahan untuk dapat mengeditnya dalam menjalankan instance, yang sangat bagus untuk melakukan swap VIP.

Jika Anda menguji di luar emulator pada mesin pengembangan, cukup mudah untuk menulis abstraksi atas konfigurasi:

class AzureConfig : IConfig
{
  public string GetConnectionString(string name)
  {
    get
    {
      return RoleEnvironment.GetConfigurationSettingsValue(name);
    }
  }
}

class OnPremConfig : IConfig
{
  public string GetConnectionString(string name)
  {
    get
    {
      return ConfigurationManager.ConnectionStrings[name].ConnectionString;
    }
  }
}

Kemudian siapkan wadah IoC Anda untuk memeriksa RoleEnvironment.IsAvailable dan kembalikan jenis yang relevan.


3
2018-03-09 10:38