現在、Webジョブとして実行している.NETアプリケーションをAzure機能に変換しようとしています。Azure機能がアプリケーション設定にアクセスしていません
アプリケーションはAzure SQLデータベースにアクセスし、ポータルのApp Settingsから接続文字列を取得します。現在のところ、これはWebサイトのApp Service(Webjob)のApp Settingsです。
だから私はPowerShellの時限トリガを作成し、Run.ps1以内に私が持っている、Azureの機能アプリケーションを作成しました:
Write-Output "PowerShell Timer trigger function executed at:$(get-date)";
cd D:\home\site\wwwroot\MyApplication\MyApplication.exe
Write-Output "PowerShell completed at:$(get-date)";
をそして、私は機能のアプリの設定を接続文字列を追加しました私が関数を実行すると、エラーが発生します。名前付き接続文字列myconnectionstringが見つかりませんでした。
MyApplication.exe.configに直接接続文字列を追加すると、完全に動作します。 Webjobとしても完璧に動作します。
アイデア?あなただけ起動した場合は動作しませんよう、
実際$ConnStr = $env:SQLAZURECONNSTR_Nhibernate
$ConfigName = "MyApp.exe.config"
$Xml = [xml](gc $ConfigName)
$Node = $Xml.configuration.connectionStrings.ChildNodes | where {$_.name -eq "nhibernate" }
If($Node.connectionString -ne $ConnStr) {
Write-Output "Updating Connection String";
$Node.connectionString = $ConnStr
$Xml.Save("D:\home\site\wwwroot\MyFunction\$ConfigName")
}
ああ、わかります。残念ながら、私はアプリケーションの設定を取得するコードを制御する必要はありません。これはNHibernateの設定で、 nhibernate から取得し、nhibernate接続文字列を探します。 もう1つの回避策がありますか? –
littlecharva
可能な代替案を追加しました。 –
素晴らしいアイデア!ありがとう。 – littlecharva