【问题标题】:Debug single role instance with Azure Compute emulator使用 Azure Compute 模拟器调试单个角色实例
【发布时间】:2011-02-09 10:11:59
【问题描述】:

我正在构建一个将在 Azure 上运行的应用程序。我的 Visual Studio 解决方案包含多个 Azure 角色项目。在本地调试时,我使用 Azure 计算模拟器。

要开始调试,我按照以下步骤操作:

  1. 我右键单击我的 Azure 项目,然后单击设置为启动项目。
  2. 我按 F5 启动调试器。

现在发生的情况是 emulator/vs2010 会同时启动我的 Web 角色和辅助角色,即使我目前只对调试单个辅助角色感兴趣。通常,在我的工作角色中编写一些后台处理代码时,我有兴趣在不启动 Web 角色的情况下单步执行该代码,同时启动 Internet Explorer 等等。

有没有一种方便的方法让调试器只启动一个角色实例而不是全部?

我正在考虑在我的控制台应用程序类型的解决方案中创建一个单独的项目,我在其中加载与我的辅助角色相同的程序集并执行相同的代码。

【问题讨论】:

    标签: visual-studio-2010 debugging azure emulation


    【解决方案1】:

    模拟器(类似于 Azure 本身)仅适用于“云服务”的概念。因此,当您启动带调试功能时,它将启动您的云服务 (.ccproj) 项目中定义的任何内容。这模仿了 Azure 100%,这就是它发生的原因,但我绝对可以看到您的方案在哪里会有所帮助。

    几个选项,根据您的需要。

    如果您需要测试 azure-specifics(也就是必须在模拟器中运行)

    • 创建第二个解决方案文件,在这里创建一个新的云服务,添加您的项目。 我喜欢这个选项,因为项目/角色本身保持不变。

    • Stuart 在我之前提出的建议是,创建第二个 Cloud 项目,设置为启动,然后运行它。

    • 与上面类似,创建第二个项目,但不要担心启动。您可以右键单击任何项​​目,转到 Debug 并选择 start w/ debugging 并在不将 F5 绑定到此解决方案的情况下实现 F5 的功能

    如果您不需要测试 azure-specifics(即您只是在测试角色)

    • 右键单击角色的项目,Debug,Start with Debugging 这样整个解决方案保持不变,您只是在测试逻辑

    【讨论】:

    • 但是如果你临时删除一个角色,你会失去它的所有配置设置、本地存储设置、声明的端点等。最好在ServiceDefinition.csdefServiceConfiguration.cscfg中注释掉。而是。
    • 是的,我应该在推荐之前尝试过那个。我把它从我的列表中删除了,因为其他建议更适合他的需要。
    【解决方案2】:

    我认为你可以这样做:

    • 在您的解决方案中创建一个新的 Azure 云项目
    • 仅向该云项目添加一个工作人员角色
    • 将该云项目设置为您的启动项目

    这将只挑出你感兴趣的工人

    【讨论】:

      【解决方案3】:

      更简单的解决方案是打开 ServiceConfiguration.cscfg 文件,并将“Instances > Count”属性设置为“0”,用于您不想运行的所有角色(这只适用于计算模拟器,而不是在蔚蓝的云上)。

      这样,您可以保持解决方案完好无损,配置安全,同时在运行时将它们从计算模拟器中省略。

      【讨论】:

      • 这实际上对我不起作用 - 它失败并显示“在 Windows Azure 的部署中不支持实例计数 0”
      猜你喜欢
      • 1970-01-01
      • 2012-03-03
      • 1970-01-01
      • 2018-03-04
      • 2016-09-30
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多