2017-11-30 11 views
0

私たちが構築したUmbracoサイトのアゾレス自治地域展開スロットを活用しようとしています。デフォルトUmbracoことでUmbraco、Azureの展開スロットと接続文字列

のconnectionStrings web.configファイルののセクションで定義されたDSNを使用して、我々は、それが中に座っての配備スロットの接続文字列を使用します。

我々はを試みた何

Azureデプロイメントスロットはすべての定義済みのアプリケーション設定(および接続文字列)を環境変数に入れてアクセスするために、Environment.GetEnvironmentVariable()を使用できますが、Umbracoにこれを伝える方法はないようです。

したがって、OnApplicationInitialized()(/App_Code/Core/UmbracoAppStart.cs)ではweb.configからconnectionstringセクションを読み込み、env varsからconnstrを取得し、DSNをconnectionstringセクションに追加して保存しました。 正しい接続文字列を取得して保存しますが、これはアプリケーションをリサイクルしているようです(web.configの変更による)ので、タイムアウトが発生します。 (またはUmbracoのXMLキャッシュエラー、またはページをロードするのに20分かかります)。

私はあなたが別々のファイルにのAppSettingsとのconnectionStringsセクションを保存することができます知っています。しかしファイル属性は、(参照されたファイルが変更された場合には、リサイクルが発生することはありません)connectionStringsセクションでは動作しません - だけconfigSource属性と変更された場合、それはリサイクルありません。

(から:ASP.NET web.config: configSource vs. file attributes

ヘルプ

は、誰もがこれを回避する方法を発見しましたか? WebConfigのではない1 - は、我々は単に展開スロット接続文字列を使用するようにUmbracoを取得する必要があります。

私はそれがどのように機能するかを理解せずにコピーして、現時点で盲目的に貼り付けるでも喜んだ - と私はそれ:)をやって嫌い。しかし、それはあなたがAzureの接続文字列やアプリの設定を使用するために、任意のコードを実行する必要はありません

答えて

0

...人々は、クライアントがちょうどクリスマス前に生きて行きたいと考えていたときに同意したときに何が起こるかです。あなたのweb.configと同じキー/名前を与えてください。代わりにそれらが使用されます。

あなたのWeb設定で、この持っているのであれば:ちょうど同じキーを使用するアプリの設定を置き換えるには

enter image description here

<add name="umbracoDbDSN" connectionString="Server={server};Initial Catalog={db};Persist Security Info=False;User ID={user};Password={password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=300;" providerName="System.Data.SqlClient" /> 

をあなたのスロット構成は、これでなければなりません。あなたが設定は、Slot settingチェックボックスを有効にする必要があり、スロット特定したい場合は enter image description here

:これのために:

<add key="umbracoUseSSL" value="false" /> 

あなたはこれを使用すると思います。

+0

うわー、今私は愚かな気がする。私は同じ名前を使用して空白にconnstrを追加しようとしたことはないと認めなければなりません...まだこの2日間の私のグーグルでこれを見つけられなかったとは信じられません。しかし、それは動作します、ありがとうMario :) – Jag

+0

ハ、問題ありません。あなたがそれを知っていると、すべてが簡単です。 –

関連する問題