Azure 辅助角色配置文件转换

2023-12-23

我已经设置了一个新的辅助角色,并通过 SlowCheetah 为其设置了一些新的配置转换。当我使用所选的新配置之一构建项目时,我实际上看到在 \bin 文件夹下创建了 configs 文件夹,正如您所期望的那样(例如 \bin\Production)。

当我使用新配置之一打包云服务进行部署时,我的 Web 项目的配置得到了适当的转换,但我的辅助角色(这只是一个库)却没有,即使我在 \bin 文件夹下看到了更新的 \bin\生产。

看起来天蓝色打包工具忽略了辅助角色库的配置集。我怎样才能让它从适当的配置中选择配置文件?


是的,您可以做到这一点 - 一旦您知道如何操作,这甚至会非常容易。
App.config 未转换按设计但幸运的是,Azure 团队使构建/部署过程非常适合此类场景。您需要做的事情已经有相当详细的记录,尽管是以一种非常迂回的方式,并且大多数文章都假设您已经熟悉 MSBuild 脚本等。

下面您将找到需要放入项目中的行,以使此功能正常工作。这应该不会超过五分钟。请注意,这不是黑客攻击 - 整个 Azure 部署过程旨在支持此类事情。

如果您想了解更多信息,底部有一些相关文章的链接。

一些概念点

  1. 在Azure中实现这种事情的推荐方法是not使用 Web.config 和 App.config,但使用 CloudConfigurationManager 并使用角色设置。然而,有时这并不是正确的答案,通常是因为内置或第三方组件需要 *.config 设置(smtp、wcf、elmah 等)。
  2. Web Config 转换旨在仅转换 web.config。这意味着 app.config 没有被转换按设计.
  3. Web 配置转换被设计为仅在以下情况下启动:出版因此,当您在本地运行时,即使在云模拟器中,您的 Web.config 也不会被转换。

我们解决这个问题的方法是挂钩云项目的构建过程。当您将项目部署到 Azure 时,将使用您可以挂钩的构建过程来构建云项目。简而言之,云项目构建了 Web 和 Worker 角色,并将它们放在您的云项目下的 Obj 文件夹下。然后它运行一个过程,实质上将所有内容压缩起来,最后将结果放入 Bin 文件夹中。从那里,“zip”文件和配置文件将上传到 Azure。

解决方案

是手动编辑您的 Cloud.csproj 文件(如果您在 Visual Studio 中执行此操作,则需要先卸载项目)。 然后将其添加到结束符的正上方</project> tag:

  <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets" />
    <PropertyGroup>
      <WorkerRoleDir>$(IntermediateOutputPath)WorkerRole1\</WorkerRoleDir>
      <AppConfigOriginal>$(WorkerRoleDir)WorkerRole1.dll.config</AppConfigOriginal>
      <AppConfigTransformer>$(SolutionDir)WorkerRole1\App.$(Configuration).config</AppConfigTransformer>
      <AppConfigAfterTransformed>$(WorkerRoleDir)AfterTransformed.config</AppConfigAfterTransformed>
    </PropertyGroup>
    <Target Name="TransformAppConfig" AfterTargets="AfterPackageComputeService">
      <Message Text="Transforming $(AppConfigOriginal) via $(AppConfigTransformer) to $(AppConfigAfterTransformed)" />
      <TransformXml Source="$(AppConfigOriginal)" Transform="$(AppConfigTransformer)" Destination="$(AppConfigAfterTransformed)" />
      <Copy SourceFiles="$(AppConfigOriginal)" DestinationFiles="$(WorkerRoleDir)App.Config.Original" />
      <Copy SourceFiles="$(AppConfigAfterTransformed)" DestinationFiles="$(AppConfigOriginal)" />
    </Target>

Notes

  • 您必须修改其中的几个硬编码路径。我确信有一种方法可以让它们变软,但这需要比我更多的 MSBuild 技能。
  • 转型实际上将run当您部署到本地云模拟器时,但它不会used。因此,结果与 Web.config 的行为一致,也未进行转换。但是,如果您的转换失败,即使只是在模拟器中运行,您也会收到构建错误。
  • 也可以看看这另一个问题 https://stackoverflow.com/questions/6187118/app-config-transformations
  • 深入探索 http://blog.slalom.com/2011/08/19/building-and-deploying-windows-azure-projects-using-msbuild-and-tfs-2010/
  • Tom Hollanders 高度链接的有关直接从 MSBuild 进行部署的文章 http://blogs.msdn.com/b/tomholl/archive/2011/12/06/automated-build-and-deployment-with-windows-azure-sdk-1-6.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Azure 辅助角色配置文件转换 的相关文章

随机推荐

  • 尽管启用了计费功能,Google API 密钥仍达到最大请求限制

    我相信我已尽一切努力正确设置对距离矩阵 API 的访问 首先 我创建了一个项目和一个计费帐户 该计费帐户已在此项目上启用 接下来 我启用了距离矩阵 API 并创建了一个不受限制的 目前 API 密钥 这就是我调用 Google 距离矩阵 A
  • 使用 UnboundID SDK 和 SSL 证书文件连接到 Android 应用程序中的 LDAP 服务器

    我正在尝试在 Android 应用程序中连接到 LDAP 服务器 并使用 UnboundID SDK 最近 从不安全的 LDAP 更改为安全的 LDAP 我必须相应地更改应用程序 我已获得 SSL 证书文件来进行验证 我已经使用该文件来制作
  • mySQL 和 PHP 编码

    您好 我对此查询有疑问 SELECT FROM table WHERE name LIKE t st HTML 和 SQL 表都有 utf 8 编码 但不幸的是没有mysql set charset utf 8 我是NOT能够使用它 我尝试
  • 正则表达式中的 \b 和 \>、\< 有什么区别?

    现在 我很困惑 我在正则表达式备忘单中找到了这个 b word boundary lt start of word gt end of word 但在 掌握正则表达式 一书中 它告诉我 lt word boundary gt word bo
  • 适用于 Linux 桌面的代码片段管理器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 本着https stackoverflow com questions 3349990 code snippet managers for
  • 如何扩展 Twitter Bootstrap 图像轮播以实现动态大小、居中的图像

    我正在尝试扩展默认的 Bootstrap 图像轮播以支持动态大小的图像 最大 500x400 水平和垂直居中 此外 我想保留原始的标题布局 它将标题锚定到图像的底部 标题 div 完全延伸到图像上 但不再进一步 我整理了一个小提琴 它是默认
  • 使用javascript连续滚动页面

    我试图重复一个页面自动滚动到底部的动画 当它到达底部时 我希望它滚动到顶部 然后 永远重复 但是 我什至无法让它执行第一个回调 任何帮助将不胜感激 Code pageScroll pageScrollUp function pageScro
  • 在哪里可以获得实时视频流示例(GStreamer)? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • NHibernate:如何在投影中选择根实体

    Ayende 描述了一种非常好的方法来获取页数 以及单个查询中的特定数据页 http ayende com blog 2334 paged data count with nhibernate the really easy way htt
  • 从下到上动画图像

    我有一棵小树的图像 我想让它从bottom to top使用 jQuery 和 CSS 目前这棵树有bottom位置为 0 并上升animate jQuery 函数 我可以做一个div与树重叠并为其设置动画animate jquery 函数
  • Angular 4使用viewChildran在动态生成的文本框中设置焦点

    我有动态生成的文本框 如下所示 tr td td tr
  • 使用 jaxb2-maven-plugin 从 WSDL 生成类

    我在配置时遇到问题jaxb2 maven plugin从 WSDL 和多个 XSD 文件生成 Java 类 这些文件都存在于同一标准目录中src main xsd 如何将 jaxb2 maven 插件与内联 XSD 一起使用 https s
  • 密码格式无效或未知的哈希算法

    我网站上的一位用户最近在尝试登录时成功触发了此回溯 在 Django Admin 中 他的密码为Invalid password format or unknown hashing algorithm 我不知道是什么原因造成的 到目前为止
  • 用谷歌脚本播放声音

    有没有一种简单的方法可以将声音文件合并到 Google Apps 脚本中 我看到一个帖子尝试以下操作 var audio new Audio alert ogg audio play 我收到错误 ReferenceError 音频 未定义
  • Tableau 过滤重复项

    我有一个与此类似的数据集 正如您所看到的 一些 ABN 附有多个企业名称 而另一些则只有一个 我想创建一个过滤器 允许用户仅查看每个 ABN 有多个名称的行 例如 将过滤掉 ABN 456 的过滤器 我可以想象如何在 SQL 中编写该内容
  • Android Volley 同步请求不起作用

    我正在尝试做一个同步请求到服务器使用请求未来但它不起作用 使用异步完成相同的请求可以正常工作 这是我的代码 public void fetchModules JSONObject response null RequestQueue req
  • Jackson JSON 给出了嵌套类集合的异常

    Jackson JSON 序列化 反序列化此类没有问题 public class MyClass public class Nested public String string public Nested public Nested ne
  • Three.js - 我可以将位置、旋转和缩放“应用”到几何图形吗?

    我想编辑对象的位置 旋转和缩放向量 然后将它们 应用 到几何图形 这会将这些向量清零 但保留变换 例如 假设我导入一个边长为 1 的立方体 立方体的最小和最大顶点位于 0 0 0 and 1 1 1 我将对象的比例设置为 2 2 2 然后将
  • “通配符”对象没有属性“输出”

    我收到一条相当简单的规则的错误 我必须为另一个程序编写一个任务文件 需要一个 tsv 文件 我从配置文件中读取一定数量的参数 并使用 shell 命令将它们写入文件中 Code rule create tasks output temp t
  • Azure 辅助角色配置文件转换

    我已经设置了一个新的辅助角色 并通过 SlowCheetah 为其设置了一些新的配置转换 当我使用所选的新配置之一构建项目时 我实际上看到在 bin 文件夹下创建了 configs 文件夹 正如您所期望的那样 例如 bin Producti