覆盖Orchard CMS中的连接字符串(来自settings.txt)

时间:2012-02-11 21:20:35

标签: connection-string orchardcms appharbor

我在AppHarbor中部署了一个使用MS SQL数据库的网站。 AppHarbor为我提供了一个我在settings.txt中输入的连接字符串,它似乎工作正常但AppHarbor建议改为使用SQLSERVER_CONNECTION_STRING变量。

这是因为连接字符串可能会在没有通知的情况下发生变化,因此唯一安全的方法是使用上述变量。

  

应该访问下面的配置变量   以编程方式,因为值可以由附加提供者更新   没有通知。

有没有办法从DataConnectionString覆盖settings.txt设置并将应用程序设置为使用SQLSERVER_CONNECTION_STRING变量?我假设AppHarbor以某种方式将这些变量设置为appSettings。

P.S。这是我在Orchard的第一个应用程序,我不熟悉这个CMS。

3 个答案:

答案 0 :(得分:6)

连接字符串在ShellSettingsManager类中设置。我不确定您是否可以轻松地从模块中替换此依赖项,但您当然可以更改设置连接字符串的代码行...

shellSettings.DataConnectionString = value;  //use your config value instead

ShellSettingsManager是IShellSettingsManager的一个实现,所以如果你想要实现自己的,那么你有一些灵活性。

答案 1 :(得分:2)

我刚刚将“配置外壳设置”模块(Fineout.ConfigShellSettings)发布到了Orchard Gallery。该模块最终提供了一种通过配置管理来管理Orchard站点(租户)shell设置的无痛方法。

<强> Download the Configuration Shell Settings module from the Orchard Gallery!

我已经复制了下面的模块包描述(版本1.0.1):

  

允许通过配置应用程序设置指定租户的Orchard shell设置,即“Web.config”而不是“Settings.txt”。这允许通过构建配置管理控制站点(租户)设置,大大简化了大多数环境和基础架构的构建和部署过程。

     

启用该功能后,所有租户的现有shell设置将从相应的“Settings.txt”文件复制到“Orchard.Web / Web.config”中定义的AppSettings中。同样,每当禁用该功能时,为所有租户定义的现有AppSettings将被复制回相应的“Settings.txt”文件。这样就可以管理该功能,而无需任何手动文件操作或代码更改。

由于这是该模块的初始版本,我预计会有很大的改进空间和偶尔的错误;我喜欢任何人的反馈或想法。我希望这一贡献对社区来说是有用的和省时的。

答案 2 :(得分:0)

将果园部署到appharbor可能不值得。在进行部署时,Appharbor会清除整个应用程序,因此上传的媒体也会被删除。您可以通过在其他地方托管媒体文件夹来解决这个问题,例如亚马逊s3。

但您也没有FTP访问日志文件或其他任何东西。 (至少不是我最后一次看)。

另外,您无法利用网络部署。

你可以使它工作,但果园架构与appharbor的部署模式产生了很大的摩擦。

不要误会我的意思。我爱appharbor。但果园是方形钉。我看到了appharbor的工作,但4个月后,我发现我害怕更新因为太多非默认设置。最后,扔掉毛巾,每月在arvixe支付8美元。现在摩擦力要小得多。