使用Azure Compute模拟器调试单个角色实例

时间:2011-02-09 10:12:00

标签: visual-studio-2010 debugging azure emulation

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

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

  1. 我右键单击我的Azure项目,然后单击“设置为启动项目”。
  2. 我按F5启动调试器。
  3. 现在发生的是模拟器/ vs2010启动我的Web角色和辅助角色,即使我现在只对调试单个辅助角色感兴趣。通常在我的worker角色中编写一些后台处理代码时,我有兴趣在不启动Web角色的情况下单步执行该代码,也可以启动Internet Explorer等。

    是否有一种方便的方法可以让调试器只启动一个角色实例而不是所有角色实例?

    我正在考虑在我的Console Application类型的解决方案中创建一个单独的项目,我在其中加载与我的worker角色相同的程序集并执行相同的代码。

3 个答案:

答案 0 :(得分:7)

模拟器(类似于Azure本身)仅适用于“云服务”的概念。因此,当您启动w / debug时,它将启动您的Cloud Service(.ccproj)项目中定义的任何内容。这模仿Azure 100%,这就是它出现的原因,但我绝对可以看到你的场景会有所帮助。

根据您的需求,很少有选择。

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

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

  • Stuart在我面前建议,创建第二个Cloud Project,设置为startup,运行它。

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

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

  • 右键单击角色的项目,Debug,从调试开始 这样整个解决方案保持不变,您只是测试逻辑

答案 1 :(得分:4)

我认为你可以通过以下方式做到这一点:

  • 在您的解决方案中创建新的Azure云项目
  • 只将一个辅助角色添加到该云项目
  • 将云项目设置为您的启动项目

这将挑出你感兴趣的工人

答案 2 :(得分:-3)

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

这样,您可以保持解决方案的完整性和配置的安全性,同时在运行时从计算机模拟器中省略它们。