2

当我在本地调试我的 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”——今天会为我节省很多时间

4

1 回答 1

2

在 Windows Azure 中启用诊断

更新 1

您可以尝试启用日志

转到%USERPROFILE%\AppData\Local\DevelopmentStorage目录。你会看到两个文件 在此处输入图像描述

打开文件DevelopmentStorage.201210.config并将LoggingEnabled更改为 true。

在此处输入图像描述

参考:

Windows Azure 辅助角色崩溃 WaWorkerHost.exe 崩溃角色

更新 2

WaHostBootstrapper日志位于C:\Resources\Directory\DeploymentID.Role.DiagnosticStore\WaHostBootstrapper.log

其他日志:

WaWebHost C:\Resources\Temp\Guid.Role\RoleTemp\WaWebHost.log

WaIISHost C:\Resources\Temp\DeploymentID.Role\RoleTemp\WaIISHost.log

IISConfigurator C:\Resources\Temp\DeploymentID.Role\RoleTemp\IISConfigurator.log

IIS 日志 C:\Resources\Directory\Guid.Role.DiagnosticStore\LogFiles\W3SVC1

Windows 事件日志 D:\Windows\System32\Winevt\Logs

更新 3

在 Azure 应用程序中定义本地存储会创建一个新文件夹,因此 Azure Compute Emulator 的路径是 %USERPROFILE%\AppData\Local\dftmp\

于 2013-03-26T10:09:22.950 回答