6

Tôi có ứng dụng ASP.NET MVC 3 chạy trên Azure. Nó cũng sử dụng SQL Azure cho một cơ sở dữ liệu.Quản lý nhiều tệp web.config cho ứng dụng MVC3 Azure

Tôi muốn triển khai Ứng dụng này cho các trường hợp khác nhau (Thử nghiệm, Demo, nhiều Productions) và mỗi cá thể cần có cơ sở dữ liệu SQL duy nhất của riêng nó.

Tôi biết rằng với bản cập nhật Azure Tools mới, bạn có thể quản lý nhiều cấu hình dịch vụ. Điều này là rất tốt và gần như giải quyết vấn đề của tôi. Vấn đề duy nhất là với chuỗi kết nối SQL trong tệp web.config trong phần MVC của dự án.

Tôi muốn có chức năng chính xác giống với tính năng Nhiều cấu hình dịch vụ, nhưng để thực hiện nó cho chuỗi kết nối SQL.

Cảm ơn sự giúp đỡ của bạn !!

Trả lời

5

.Net configuration transformations nên thực hiện công việc. Giống như Azure Service Configurations, một tệp Web.ConfigurationName.config riêng biệt được tạo ra cho mỗi cá thể bạn muốn triển khai. Xây dựng giải pháp với Cấu hình thích hợp (Thử nghiệm, Demo, v.v.) sẽ chèn đúng các giá trị cấu hình "instance" vào trong Web.config.

+0

Đây là phương pháp mà tôi sử dụng và nó hoạt động tốt. –

+0

Làm cách nào bạn có thể thành thật khuyên bạn nên viết các biến đổi XLS trên các tệp cấu hình của một người? Tập tin cấu hình đã là một hành vi đủ lớn như nó được. –

3

Tôi thường giữ các chuỗi kết nối SQL trong các tệp ServiceDefinition. * .scscfg. Bằng cách đó bạn sẽ có được lợi thế nhất là có thể chỉnh sửa chúng trên các cá thể đang chạy, điều này thật tuyệt vời khi thực hiện hoán đổi VIP.

Nếu bạn đang thử nghiệm bên ngoài giả lập trên máy phát triển, nó khá đơn giản để viết một trừu tượng trên cấu hình:

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; 
    } 
    } 
} 

Sau đó thiết lập container IoC của bạn để kiểm tra RoleEnvironment.IsAvailable và trả về kiểu thích hợp.

Các vấn đề liên quan