5

MS SQL データベースを使用する AppHarbor に Web サイトをデプロイしました。AppHarbor は、私が入力した接続文字列を提供してくれます。問題なくsettings.txt動作しているようですが、AppHarbor はSQLSERVER_CONNECTION_STRING代わりに変数を使用することを提案しています。

これは、接続文字列が予告なしに変更される可能性があるためです。唯一の安全な方法は、前述の変数を使用することです。

以下の構成変数へのアクセスは、プログラムで行う必要があります。値は、アドオン プロバイダーによって予告なしに更新される可能性があるためです。

DataConnectionString設定をオーバーライドして、代わりに変数settings.txtを使用するようにアプリケーションを設定する方法はありますか? SQLSERVER_CONNECTION_STRINGAppHarbor が何らかの方法でこれらの変数を 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

"Configuration Shell Settings"モジュール (Fineout.ConfigShellSettings) を Orchard Gallery に公開しました。このモジュールは最終的に、構成管理を介してオーチャード サイト (テナント) シェル設定を管理するための簡単な方法を提供します。

Orchard Gallery から Configuration Shell Settings モジュールをダウンロードしてください。

モジュール パッケージの説明 (バージョン 1.0.1) を以下にコピーしました。

構成アプリケーションの設定 (「Settings.txt」ではなく「Web.config」) を使用して、テナントのオーチャード シェル設定を指定できるようにします。これにより、ビルド構成管理によるサイト (テナント) 設定の制御が可能になり、ほとんどの環境とインフラストラクチャのビルドとデプロイのプロセスが大幅に簡素化されます。

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

これはモジュールの初期バージョンであるため、改善の余地が十分にあり、時折発生するバグがあると思います。フィードバックやアイデアをお待ちしております。この貢献がコミュニティにとって有用であり、時間の節約になることを願っています。

于 2013-10-19T17:41:47.273 に答える
0

orchard を appharbor にデプロイすることは、努力する価値がないかもしれません。Appharbor はデプロイ時にアプリ全体を消去するため、アップロードされたメディアも消去されます。Amazon s3 などの別の場所にメディア フォルダーをホストすることで、これを回避できます。

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

さらに、Web デプロイを利用することはできません。

機能させることはできますが、オーチャード アーキテクチャは、Appharbor の展開モデルとの摩擦を生み出します。

誤解しないでください。私はアファーバーが大好きです。でもオーチャードは四角いペグ。私は appharbor に取り組んでいるように見えましたが、4 か月後、デフォルト以外の設定が多すぎるため、更新するのが怖いことに気付きました。最後に、タオルを投げて、arvixe で月額 8 ドルを支払いました。摩擦がかなり少なくなりました。

于 2012-02-13T01:56:52.443 に答える