当我在本地调试我的 Azure 项目(1 个 Web + 1 个工作角色实例)时,调试器通常会停止并且角色实例正在重新启动。
我不知道为什么会发生这种情况,没有未捕获的异常,如果我在不设置断点的情况下运行项目,一切正常。但是,当我设置断点并使用 Step Over / Step into 移动代码时,调试器只是以随机间隔停止。
有谁知道是什么原因造成的/我在哪里可以找到可能对此有所了解的其他日志?
更新:
我之前忽略了这一点,或者它没有记录到输出窗口,但我现在收到以下错误:
First-chance exception at 0x000007fde4a4167f in WaWorkerHost.exe: 0xC0000005: Access violation reading location 0xfffffffffffffff8.
The Common Language Runtime cannot stop at this exception. Common causes include: incorrect COM interop marshalling, and memory corruption. To investigate further, using native-only debugging.
我很确定这不是我的应用程序的错——正如我所提到的,当我不设置断点并手动单步执行时,我正在调试的确切代码运行良好。
有任何想法吗?
更新 2:
从引导程序(旧)日志:
[00012264:00001260, 2013/03/26, 11:37:19.777, 00100000] <- CRuntimeClient::OnRoleStatusCallback(0x0000006BD7718C00) =0x800706be
[00012264:00008432, 2013/03/26, 11:37:19.804, 00100000] <- CRuntimeAgent::RemoveEndpointRegistration(0x0000006BD76F60E0) =0x80070005
[00012264:00001260, 2013/03/26, 11:37:19.811, 00040000] Client process WaWorkerHost.exe is the role host.
[00012264:00008432, 2013/03/26, 11:37:19.830, 00100000] <- CRuntimeAgent::UnregisterEndpoint(0x0000006BD76F60E0) =0x80070005
[00012264:00001260, 2013/03/26, 11:37:19.830, 00080000] Failed to contact the role host process. Treat role as unhealthy.
该文件以此结尾——在下一个引导程序日志中,正在记录角色实例的启动。是不是调试会阻止引导程序联系角色,从而确定它们不健康并且必须重新启动?
最后更新:
我擦除了我的项目并从存储库中重新签出。事实证明,我的一个类库中缺少一个引用。缺少的引用从未显示为编译错误,可能是因为某处放置了旧版本。
对于发现自己处于类似情况的所有其他人,我只能建议尝试做同样的事情:彻底清理他们的代码库,看看问题是否消失。在我搜索的所有日志中,我从未遇到过“MissingReferenceException”——今天会为我节省很多时间