3

我有一个 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 角色中的断点会正常命中。)

4

1 回答 1

0

我今天尝试了同样的事情 - 没有/useiisexpress旗帜。发生的事情是我在本地 IIS 上注意到一个网站是由计算模拟器创建的。我以管理员身份重新启动 Rider,放置了一个测试断点,附加到 w3wp.exe 并且它工作。

于 2021-08-05T11:11:33.177 回答