Windows Azureにデプロイされたクラウドサービス(この場合はWCF)のweb.configを変更しようとしていますが、実行時にweb.configのappSettingsを変更しようとすると、アクセス許可が拒否されたというエラーが発生します。
Access to the path 'E:\sitesroot\0\web.config' is denied.
これを修正する方法はありますか?
ジョニー Sは正しいです。実行時に変更する設定をロール構成に保存する必要があります。web.config
Azure が VM を移動すると変更が失われ、複数インスタンスのシナリオではインスタンスが同期しなくなります。イベントを使用roleenvironmentchanging
して、ロール インスタンスが構成の変更にどのように応答するかを管理できます。
roleenvironmentchanging
イベント チェックの詳細については、http://msdn.microsoft.com/en-us/library/windowsazure/gg432963.aspxを参照してください。
実行時に変更する必要があるすべての設定をロールの ServiceConfiguration (cscfg) に保存し、コードで次を使用して設定を取得する必要があります。
string setting = RoleEnvironment.GetConfigurationSettingValue("myConfigSetting");
デプロイしたら、管理ポータルから ServiceConfiguration の値を変更できます。
Web ロールに RDP を使用すると、ログインしているユーザーの web.config ファイルにアクセス許可を追加できるはずです。その後、web.config を変更できます。@Adilが言及しているように、これによりAppDomainがリサイクルされるため、実際には最後の手段としてのみ実行する必要があります.