【问题标题】:Web.config altered (drastically) during Azure deployment在 Azure 部署期间,Web.config 发生了巨大的变化
【发布时间】:2012-06-15 11:51:44
【问题描述】:

部署到 Azure 后,我不断收到服务器错误 - 应用程序无法运行。所以我在实例中做了一个远程桌面,发现 web.config 已经彻底检修了......这是怎么回事?我以为 web.config 是按原样打包的?相反,整个配置已被替换。当我用原始的、未更改的、正确的配置替换“新”版本时,我的应用程序按预期工作。

首先,这里发生了什么?我究竟做错了什么?这样我就可以理解,以后不会再复制了。

其次,我该如何阻止这种行为?我想要部署原始的 web.config——而不是任意的冒名顶替者。谢谢!

【问题讨论】:

  • 你能发布一些这两个版本的例子吗?您是否有用于调试/发布的 Web.config 覆盖?您是否配置了参数转换? (类似于msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx
  • 是的,我试图发布配置的图像,但我的“声誉”太低了。我没有覆盖或转换(尤其是因为这个问题)。图片(来自同一个问题)在这里:social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/….
  • 您能否提取 azure 包以验证更改是否在构建/打包期间发生?如果您在 azure 模拟器中本地构建并运行相同的配置,文件保持不变?
  • 在提取 azure 包(通过解压缩)时,我现在看到该文件完全丢失。知道发生了什么吗?

标签: asp.net azure web-config azure-deployment


【解决方案1】:

除非您指定了转换(使用普通的内置 web.config.debug 和 .release),否则它不会转换任何用户设置。在某个时间点,它确实转换了 machineKey 设置,以便您的 Web 角色可以在 Web 场场景中运行(如果没有,负载均衡器将无法运行)。我确信它仍然会这样做,但它现在可能会在 machine.config 级别执行此操作(不理会您的 web.config)。我已经有一段时间没有检查过这个了,所以不确定它现在做了什么。

检查将要部署的内容的简单方法是打包您的 cskpkg 并将其打开为 .zip 文件。里面将是另一个文件,其中包含您的网络角色名称。再次以 .zip 格式打开它,您应该会看到您的网站已全部打包。检查 web.config 并确保它是您需要的。如果没有,请在此处发布您认为不应更改的内容。

【讨论】:

  • 谢谢。当我按照您的建议解压缩他的 cskpkg 时,我看到 web.config 文件完全 missing 来自“sites/0”目录。知道这里发生了什么吗?
  • 啊哈..找到了解决方案。以您的建议为起点并意识到 web.config 丢失了,从this question 找到了这个块(“web.config 文件的 BuildAction 以某种方式从 Content 更改为 None。”)。现在,部署按预期工作!再次感谢。
【解决方案2】:

根据 dunnry 的解压缩 cskpkg 文件的建议,我注意到 web.config 甚至从未打包过——因此 Azure 一定是出于必要而创建了一个基本配置(没有警告我!?!?)。经过一番调查,我发现了这个金块(来自another StackOverflow question addressing deployment issues):

原来 web.config 文件甚至没有包含在部署包中。 web.config 文件的 BuildAction 不知何故从 Content 更改为 None。

将 BuildAction 改回“内容”后,我的部署现在可以按预期工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2012-05-31
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2018-02-19
    相关资源
    最近更新 更多