5

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

那是因为连接字符串可能会在没有通知的情况下更改,因此唯一安全的方法是使用提到的变量。

访问下面的配置变量应该以编程方式完成,因为附加提供者可能会在不通知的情况下更新这些值。

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

PS 这是我在 Orchard 的第一个应用程序,我对这个 CMS 并不精通。

4

3 回答 3

6

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

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

ShellSettingsManager 是 IShellSettingsManager 的实现,因此如果您也想实现自己的,那么您可以在其中具有一定的灵活性。

于 2012-02-12T08:16:49.977 回答
2

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

从 Orchard Gallery 下载 Configuration Shell 设置模块!

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

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

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

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

于 2013-10-19T17:41:47.273 回答
0

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

但是您也没有对日志文件或其他任何内容的 FTP 访问权限。(至少不是我最后一次看)。

另外你不能利用网络部署。

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

不要误会我的意思。我爱appharbor。但果园是方钉。我的视线在 appharbor 上工作,但 4 个月后我发现我害怕更新,因为太多非默认设置。最后,认输并在 arvixe 每月支付 8 美元。现在摩擦少了很多。

于 2012-02-13T01:56:52.443 回答