Ho implementato un sito Web in AppHarbor che utilizza un database MS SQL. AppHarbor mi fornisce una stringa di connessione che ho inserito in settings.txt
e sembra funzionare bene, ma AppHarbor suggerisce di utilizzare la variabile SQLSERVER_CONNECTION_STRING
.Sovrascrivere stringa di connessione (da settings.txt) in Orchard CMS
Questo perché la stringa di connessione può cambiare senza preavviso, quindi l'unico modo sicuro è usare la variabile menzionata.
Accesso alle variabili di configurazione qui sotto dovrebbe essere fatto programatically, i valori possono essere aggiornati per l'add-on fornitore senza preavviso.
C'è un modo per sostituire l'impostazione DataConnectionString
da settings.txt
e impostare l'applicazione per utilizzare la variabile SQLSERVER_CONNECTION_STRING
invece? Presumo che AppHarbor in qualche modo imposti tali variabili come appSettings.
P.S. Questa è la mia prima applicazione con Orchard, non sono abile con questo CMS.
Per essere onesti, speravo in una soluzione che non includeva scherzi con il codice sorgente, ma alla fine ho seguito il tuo suggerimento 'shellSettings.DataConnectionString = ConfigurationManager.AppSettings [ "SQLSERVER_CONNECTION_STRING"] ?? valore; ' – lalibi
ya, mi dispiace, non penso che ci sia un'opzione non di codice. –
So che questo è un po 'datato e la fonte del framework di Orchard è cambiata, ma nella versione 1.6 sembra che questo potrebbe essere ottenuto senza cambiare la fonte principale di Orchard. Si potrebbe creare un'implementazione personalizzata di IShellSettingsManager. IoC per ShellSettingsManager è registrato utilizzando Autofac, quindi dovrebbe essere possibile creare un nuovo ContainerBuilder, quindi chiamare RegisterType o RegisterInstance e infine chiamare Update passando nel core Container originariamente restituito da OrchardStarter.CreateHostContainter(). Sto lavorando su un approccio simile ora, alla ricerca di un buon punto di iniezione. – defines