Tôi đã triển khai một trang web trong AppHarbor sử dụng cơ sở dữ liệu MS SQL. AppHarbor cung cấp cho tôi chuỗi kết nối mà tôi đã nhập vào settings.txt
và có vẻ như hoạt động tốt NHƯNG AppHarbor đề nghị sử dụng biến số SQLSERVER_CONNECTION_STRING
thay thế.Ghi đè chuỗi kết nối (từ settings.txt) trong Orchard CMS
Đó là do chuỗi kết nối có thể thay đổi mà không cần thông báo nên cách an toàn duy nhất là sử dụng biến được đề cập.
Tiếp cận các biến cấu hình dưới đây nên được thực hiện programatically, như các giá trị có thể được cập nhật bởi các add-on cung cấp mà không thông báo trước.
Có cách nào để ghi đè lên các thiết lập DataConnectionString
từ settings.txt
và thiết lập các ứng dụng để sử dụng biến SQLSERVER_CONNECTION_STRING
để thay thế? Tôi giả sử AppHarbor bằng cách nào đó đặt các biến đó thành appSettings.
P.S. Đây là ứng dụng đầu tiên của tôi với Orchard, tôi không thành thạo với CMS này.
Thành thật mà nói, tôi đã hy vọng cho một giải pháp mà không bao gồm rối tung với mã nguồn nhưng cuối cùng tôi đã theo đề xuất của bạn 'shellSettings.DataConnectionString = ConfigurationManager.AppSettings [" SQLSERVER_CONNECTION_STRING "] ?? giá trị; ' – lalibi
ya, xin lỗi, tôi không nghĩ có tùy chọn không phải mã. –
Tôi biết điều này là một chút ngày và nguồn khung Orchard đã thay đổi, nhưng trong phiên bản 1.6 có vẻ như điều này có thể được thực hiện mà không thay đổi nguồn lõi chính của Orchard. Người ta có thể tạo ra một triển khai tùy chỉnh của IShellSettingsManager. IoC cho ShellSettingsManager được đăng ký sử dụng Autofac, vì vậy nó sẽ có thể tạo một ContainerBuilder mới, sau đó gọi RegisterType hoặc RegisterInstance, và cuối cùng gọi Update cập nhật trong lõi Container ban đầu được trả về bởi OrchardStarter.CreateHostContainter(). Tôi đang làm việc trên một cách tiếp cận tương tự bây giờ, tìm kiếm một điểm tiêm tốt. – defines