【问题标题】:Possible to edit web.config of cloud app deployed on windows Azure without redeploying app?可以在不重新部署应用程序的情况下编辑部署在 Windows Azure 上的云应用程序的 web.config?
【发布时间】:2020-09-28 12:59:50
【问题描述】:

我想在 azure web 应用的 web.config 上添加重写 URL 代码,而无需再次重新部署整个应用。为此,我使用“应用程序服务编辑器”和“kudu-调试控制台”来编辑 web.config,首先我无法保存文件并给我错误。

经过一番搜索,我发现在 APP SETTING KEY 下的值应该是 0 而不是 1

将值 1 编辑为 0 并保存 APP SETTING KEY,之后我可以编辑配置文件,为了再次测试代码,我将值 0 更改为 1 并保存设置。但是当我刷新在编辑器或 kudu 中打开的文件时,粘贴的代码消失了,该站点已与自动 azure 部署管道连接

How I can edited the web.config file without redeploying the app again.

【问题讨论】:

  • 您是否会考虑使用其他部署方法,例如 web deploy、zip deploy 而不是 run from package?可以做你想做的事,但解决方法有点复杂。所以我认为如果你没有具体的理由避免重新部署,重新部署会更好......(PS:我稍后会为你发布我的详细解决方法)
  • 详细解决方法已更新,如果您在尝试我的解决方法时遇到任何问题,请随时告诉我。 PS:1.我的解决方法不需要对wwwroot进行任何更改,因此我们不需要将xxx的值更改为0来使wwwroot可编辑。 2.所有更改后,您可能需要重新启动应用服务。 (没必要,但推荐~)
  • 是的,解决方法有点奇怪和复杂,所以我会选择部署方法 'WebDeploy' 而不是 Zip Package 在 azure 发布管道任务中

标签: azure azure-devops web-config azure-web-app-service


【解决方案1】:

是的,可以在不重新部署应用的情况下进行更改。

一些细节:

查看Run the package文档,我们可以找到:

1.zip包不会解压到D:\home\site\wwwroot,而是直接上传到D:\home\data\SitePackages

2.A packagename.txt 包含运行时要加载的 ZIP 包的名称,将在同一目录中创建。

3.App Service 将上传的包挂载为只读的 wwwroot 目录,并直接从该挂载目录运行应用程序。 (所以我们不能直接编辑只读的wwwroot目录)

所以我的解决方法是:

1.通过kudu- debug console导航到D:\home\data\SitePackages

下载代表您部署的应用程序的 zip(在我的情况下是 20200929072235.zip),解压缩此 zip 文件并对 web.config 文件进行一些更改。

2.将这些文件(选择这些文件并右键单击...)压缩成childtest.zip,请在这里仔细按照我的步骤操作!!! Run-from-package的文件夹结构有点奇怪!!!

3.然后将childtest.zip压缩成parenttest.zip(上传xx.zip时,kudu总是会自动添加它们。所以我们必须先将childtest.zip压缩成parenttest.zip

4.Drag and drop本地parenttest.zip进入kudu-debug console的在线SitePackages文件夹,我们现在可以得到childtest.zip

5.修改packagename.txt,将内容从20200929072235.zip改为childtest.zip保存

完成~

检查和测试:

现在让我们打开App Service Editor 来检查更改:

另外:虽然它回答了最初的问题,但我建议使用其他部署方法(网络部署...)作为解决方法。可以轻松很多~

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多