我有一个 Visual Studio 解决方案,它有一个带有一个 Web 角色的云项目(包含一个 ASP.NET MVC Web API)。如果我按 F5,Azure 模拟器就会启动,我可以很好地调试 Web 角色。
我还有一个包含集成测试的测试项目,用于端到端测试 web api。在 AssemblyInitialize 操作中,我使用 csrun.exe 来部署和启动 Azure 模拟器,如下所示:
"C:\Program Files\Microsoft SDKs\Windows Azure\Emulator\csrun.exe"
..\..\..\..\Sources\Cfg.Mgp.Infrastructure.Cloud\csx\Debug
..\..\..\..\Sources\Cfg.Mgp.Infrastructure.Cloud\bin\Debug\ServiceConfiguration.cscfg
/useiisexpress
因此,如果我开始测试,Azure 模拟器就准备好了,并且可以正常执行测试。这一切都有效。
但是,如果我想从我的集成测试开始调试它,Web API 中的断点不会被命中(但它执行得很好)。我尝试将调试器附加到 IISExpress、WaHostBootstrapper 和其他进程,但没有任何效果。
如果 Azure 模拟器是使用 csrun.exe 启动的,有谁知道如何调试 Web 角色?
(备注:如果我按 F5,则会启动浏览器;如果我随后运行集成测试,则 Web 角色中的断点会正常命中。)