2012-02-11 4 views
5

MS SQLデータベースを使用するAppHarborにWebサイトを配置しました。 AppHarborは、私がsettings.txtに入力した接続文字列を私に提供しています。それはうまく動作するようですが、AppHarborはSQLSERVER_CONNECTION_STRING変数を代わりに使用することを提案します。オーチャードCMSの接続文字列(settings.txtから)をオーバーライド

これは、接続文字列が予告なしに変更される可能性があるためです。唯一安全な方法は、前述の変数を使用することです。値は、予告なしアドオンプロバイダ によって更新することができるように以下の構成変数へのアクセス

は、プログラム的 を行わなければなりません。

代わりSQLSERVER_CONNECTION_STRING変数を使用するようにアプリケーションをsettings.txtからDataConnectionString設定を上書きして設定する方法はありますか?私はAppHarborがどうにかこれらの変数をappSettingsとして設定すると仮定します。

P.S.これはオーチャードの私の最初のアプリケーションです、私はこのCMSに堪能ではありません。

答えて

6

接続文字列は、ShellSettingsManagerクラスで設定します。あなたには、いくつかを持っているので、

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

ShellSettingsManagerがIShellSettingsManagerの実装です...私はあなたが簡単にモジュールからこの依存関係を置き換えることができわからないんだけど、あなたは確かにだけ接続文字列を設定するコードの行を変更することができ柔軟性もあります。

+0

正直に言うと、私はソースコードをいじっ含まれていませんでした解決策を期待していたが、私は最終的にあなたの提案を続い 'shellSettings.DataConnectionString = ConfigurationManager.AppSettings [「SQLSERVER_CONNECTION_STRING」]?値; ' – lalibi

+0

ya、申し訳ありませんが、私は非コードオプションはないと思います。 –

+1

これはちょっと古いと思いますが、オーチャードのフレームワークのソースは変更されていますが、バージョン1.6ではコアオーチャードのソースを変更せずにこれを実現できるようです。 IShellSettingsManagerのカスタム実装を作成するかもしれません。 ShellSettingsManagerのIoCはAutofacを使用して登録されているため、新しいContainerBuilderを作成し、RegisterTypeまたはRegisterInstanceを呼び出し、最後にOrchardStarter.CreateHostContainter()が元々返したコアコンテナのUpdateパッシングを呼び出すことができます。私は今、同様のアプローチで、良い注入点を探しています。 – defines

0

orhardをappharborにデプロイすることは効果がない可能性があります。 Appharborは展開を行うときにアプリケーション全体を消去し、アップロードされたメディアも一掃されます。 amazon s3のように、別の場所でメディアフォルダをホストすることで、この問題を回避できます。

しかし、ログファイルやその他のものへのFTPアクセスもありません。 (少なくとも私が見た最後の時間ではない)。

さらに、Webデプロイメントを利用できません。

あなたはそれを働かせることができますが、果樹園の建築はappharborの配備モデルと多くの摩擦を作ります。

間違ってはいけません。私はappharborが大好きです。しかし、果樹園は四角いペグです。私は視力をappharborに作用させましたが、4ヶ月後には、デフォルト以外の設定が多すぎるため、更新が怖かったです。最後に、タオルを投げて、arvixeで月額8ドルを支払った。今はずっと摩擦が少ない。

+0

私はAppHarborの優れたデモ(クライアントが開発中に自分のサイトをチェックアウトすることができるように)を無料でAppHarborのプランを使用するのが好きです。おそらく私はサイトが完成したら別の場所に移動するだろうが、開発には時間がかかるだろうし、プロジェクトの開発中に顧客に支払いを開始するよう伝えたくない。あなたの情報をありがとう。 – lalibi

+0

S3ストレージプロバイダを使用すると、ファイルの問題は少なくなります。ここでガイドを作成しました:http://support.appharbor.com/kb/tips-and-tricks/running-orchard-on-appharbor – friism

2

"構成シェルの設定"モジュール(Fineout.ConfigShellSettings)をオーチャードギャラリーに公開しました。このモジュールは、構成管理によるOrchardサイト(テナント)のシェル設定を管理する無痛な方法を最終的に提供します。

Download the Configuration Shell Settings module from the Orchard Gallery!

私は下のモジュールパッケージの説明(バージョン1.0.1)をコピーした:

、構成アプリケーションの設定を介して指定するテナントのためのオーチャードシェルの設定を可能にしますつまり、「ウェブ「Settings.txt」の代わりに「.config」を使用します。これにより、ビルド構成管理によるサイト(テナント)設定の制御が可能になり、ほとんどの環境およびインフラストラクチャのビルドおよび展開プロセスが大幅に簡素化されます。

この機能を有効にすると、すべてのテナントの既存のシェル設定が、それぞれの "Settings.txt"ファイルから "Orchard.Web/Web.config"で定義されているAppSettingsにコピーされます。同様に、機能が無効になると、すべてのテナントに対して定義された既存のAppSettingsがそれぞれの "Settings.txt"ファイルにコピーされます。これにより、手動のファイル操作やコードの変更を必要とせずに機能を管理することができます。

これはモジュールの初期バージョンであるため、改良の余地があり、時折のバグがあると思います。誰かが持っているフィードバックやアイディアが大好きです。私はこの貢献がコミュニティにとって有益かつ時間を節約することを証明してくれることを願っています。