Est-il possible de modifier web.configuration de l'application cloud déployée sur windows Azure sans redéployer mon application?

est-il possible de éditer web.config fichier de mon application cloud déployé sur Windows Azure sans redéployer mon application ?

Scénario " -->

  1. L'application Cloud est déployée sur Azure avec 3 occurrences.
  2. web.config a un texte statique dans appsetting qui est affiché sur la page D'accueil(par exemple - © 2009 mon site. Tous droits réservés )
  3. maintenant je souhaite changer ce texte statique mentionné dans le Web.Config de 2009 à 2010 .
  4. maintenant je souhaite éditer Web.Config sans redéploiement de mon site.
  5. je ne veux pas --> déployer mon app sur stagging à jour "151910920 Web".Config et puis l'échanger avec production .

y a-t-il une astuce pour mettre à jour les fichiers du paquet déployé à l'exécution ?

31
demandé sur Kushal Waikar 2010-03-02 12:50:37

5 réponses

selon Maxim dans les commentaires ci-dessous cette réponse est maintenant périmée.

vous pouvez programmatiquement modifier le web.paramètres de configuration d'un rôle web dans L'événement OnStart en utilisant Microsoft.Web.Administration.Bibliothèque ServerManager.

* * * laissant la réponse originale comme elle était correcte à l'époque et comme, je n'ai pas utilisé Azure depuis la réponse à cette question, et je ne suis pas sûr à 100% de la réponse valide.

en un mot aucun.

vous devez utiliser le fichier de configuration du service pour ces réglages.

pour décider s'il faut placer des clés dans les paramètres de configuration de service par rapport aux paramètres de configuration web.

Vous pourriez vous poser les questions suivantes:

ce réglage change-t-il à chaque déploiement? Si c'est le cas, les paramètres de configuration web sont l'endroit approprié pour cette information.

ce réglage changera-t-il après le déploiement? Si c'est le cas, le service paramètres de configuration est l'endroit correct pour cette information.

Sur Le Web.le fichier de configuration fait partie du paquet de déploiement et est donc en lecture seule lorsqu'il est déployé sur Azure, afin de mettre à jour les paramètres que vous aurez besoin de redéployer.

attendu que le fichier de configuration de service est chargé avec, mais non empaqueté avec, le déploiement package, et vous pouvez donc télécharger ou éditer le fichier sans redéployer votre service.

20
répondu Nicholas Murray 2013-07-31 15:36:10

Il est possible et si vous faites des modifications sur le site web.config, la ASP.NET app va redémarrer avec les nouveaux paramètres, tout comme vous vous attendez sur "normal ASP.NET". Vous avez juste besoin d'être certain que vous faites les bonnes mises à jour web.config ou votre instance est probablement impossible à réparer une fois ASP.NET est parti avec une toile.erreur de configuration.

si vous avez web.config dans le cadre de votre paquet de déploiement, vous devez modifier les permissions des fichiers qui s'y trouvent., ce que vous pouvez faire à partir de RoleEntryPoint.OnStart ().

une Autre façon serait d'avoir votre ASP.NET app écrire le web initiale.config lui-même via un gestionnaire web init.

par défaut le ASP.NET app n'aura pas les permissions de mise à jour ou de suppression des fichiers du paquet de déploiement ou des fichiers écrits par votre code RoleEntryPoint, alors qu'il a un accès complet aux fichiers qu'il crée lui-même. Ce comportement n'est ressenti que sur le "vrai Azur" alors que les choses se comportent autrement lors de la course locale avec le SDK.

vérifiez ceci pour des informations sur l'écriture de fichiers et la configuration des permissions sur les fichiers de RoleEntryPoint.OnStart(): Comment puis-je obtenir le WebRole site du chemin de la racine à partir de RoleEntryPoint.OnStart ()?

8
répondu mawtex 2017-05-23 10:30:42

Oui, c'est faisable. Les étapes sont:

  1. utilisez la variable d'environnement "RdRoleRoot" pour trouver la racine du rôle.
  2. cherche " RoleModel.fichier xml 151940920"
  3. chargez le modèle.fichier xml 'et trouver l'entrée pour votre site sous" Sites "node
  4. dans cette entrée, recherchez l'attribut "physicalDirectory" qui est le chemin relatif vers le répertoire contenant votre site web.fichier de configuration
  5. combinez le chemin racine rôle avec ce chemin directphysique pour obtenir le chemin complet

j'ai écrit un billet de blog http://anuchandy.blogspot.com/2014/02/changing-webconfig-file-deployed-on.html avec code d'échantillon.

1
répondu Anu Thomas Chandy 2014-06-13 21:26:55

oui, vous pouvez, tout ce que vous devez faire est de créer un CDR pour Azure et goto E:\siteroot\0 où vous pourrez voir tous vos fichiers déployés. et il suffit de modifier web.config ce que vous aimez. il fonctionnera à la fois pour la Production et la mise en scène pas besoin de redéploiement ou de re-image ou de redémarrage.

Peut ce post Thread est demandé à long retour, mais pour quelqu'un comme moi ce vraiment utile :-)

0
répondu Ramakrishna 2014-06-05 07:28:13

13 juillet 2018

le portail Azure a un éditeur de Service App (en preview) sous votre service App déployé. En sélectionnant cette option, vous obtenez un éditeur visuel ressemblant à un code de Studio pointé sur votre site web Azure déployé, rendant les modifications à web.config (ou tout autre fichier) facile:

Azure App Service Editor screenshot

0
répondu Andrew 2018-07-13 08:25:09