【问题标题】:Transform web.config on azure在 azure 上转换 web.config
【发布时间】:2014-12-10 17:18:13
【问题描述】:

问题是这个问题的后续:Generate Web.Debug config which could be debugged](Generate Web.Debug.config which could be debugged)

我已经为 web.debug.config 定义了一个转换。在编译期间,我看到以下内容:

Transformed Web.config using C:\data\Main\WebRole\Web.Debug.config into
C:\data\Main\obj\obj\x64\Debug\WebRole.csproj\TransformWebConfig\ [...]
   transformed\Web.config.

检查指定位置的Web.config - 正确(转换成功)

但是当我在 azure 模拟器中启动服务时,我收到一个警报

为什么会这样?看起来采取了不正确的 web.config。我应该在哪里指定正确(转换后的)文件的位置?

【问题讨论】:

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


    【解决方案1】:

    使用 web.config 转换实现的关键(并在您的链接问题的答案中提到)是它们只是故事的一部分。

    当您构建源代码时,转换后的 web.config 文件将构建到 /obj/ 文件夹中,可供部署。

    只有在某个地方部署您的解决方案才能使用转换后的配置文件 - 如noted in the docs

    当您使用选定的构建配置并使用部署包或一键发布来部署 Web 应用程序时,Web.config 文件将根据您的规范进行转换。

    构建后如何运行应用程序?您需要使用支持 Web 转换的内置机制之一发布或部署它,才能在您的网站上查看这些更改。

    如果您针对原始源文件运行模拟器,他们将看不到转换后的 web.config 文件 - 这就是为什么 debug 构建通常没有任何转换,然后您关闭发布版本的调试,然后将其部署到生产环境。

    当您尝试在模拟器中进行测试时,您应该能够执行以下操作:

    1. 在解决方案资源管理器中,确保您已在项目中选择了一个在模拟器中运行的文件。
    2. 从“构建”菜单中,选择“发布[项目名称”。
    3. 在发布向导中,使用“自定义”发布目标创建一个新的“配置文件”。
    4. 在“连接”窗格中选择“文件系统”作为发布方法,并为其指定合适的目标位置。
    5. 在“设置”窗格中选择适当的配置(在您的情况下可能是“调试”),并设置您喜欢的任何其他选项。

    然后按“发布”,项目应该会被构建,然后部署到新的文件位置。

    然后您应该能够从这个新发布的位置启动模拟器,该位置将使用您转换后的 web.config。

    【讨论】:

    • 我在 azure 模拟器中运行它。
    • 我可以改用传输文件运行模拟器吗?
    • 您需要为模拟器生成并运行部署包以查看转换后的文件 - 或者(并按照建议)反转转换,以便您的模拟器/调试版本始终为 debug="true"并且发布版本会进行(默认)转换以删除它 - 您如何将解决方案部署到 Azure - 手动或通过构建代理?
    • 我不能让它 debug=true。需要保留 debug=false。
    • 虽然我的解决方案解决了我的问题,但我会奖励你的努力
    【解决方案2】:
    猜你喜欢
    • 1970-01-01
    • 2018-09-25
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多