如何使用Windows Azure的远程桌面调试工作者角色?

如何使用Windows Azure的远程桌面调试工作者角色?,azure,remote-debugging,remote-desktop,azure-worker-roles,Azure,Remote Debugging,Remote Desktop,Azure Worker Roles,我现在已经设置了我的Windows Azure环境,以便可以通过远程桌面访问我的工作人员角色。然而,我不知道目前如何进行。在深入挖掘之后,我发现了一个离线的网站,但在谷歌的缓存中提到了从VisualStudio调试器连接到Azure云中运行的Worker角色。但我只有Visual Developer(不是studio)2010,我已经搜索了所有地方,就我所见,没有这样的选项可以连接到远程服务器。我能够毫无错误地将我的项目发布到Azure云,并且我的工作者角色的“健康”实例显示为活动且正在运行 我

我现在已经设置了我的Windows Azure环境,以便可以通过远程桌面访问我的工作人员角色。然而,我不知道目前如何进行。在深入挖掘之后,我发现了一个离线的网站,但在谷歌的缓存中提到了从VisualStudio调试器连接到Azure云中运行的Worker角色。但我只有Visual Developer(不是studio)2010,我已经搜索了所有地方,就我所见,没有这样的选项可以连接到远程服务器。我能够毫无错误地将我的项目发布到Azure云,并且我的工作者角色的“健康”实例显示为活动且正在运行

我确实通过Azure管理门户与RDP连接。登录工作正常,出现了远程桌面窗口。我搜索了很多我能找到的东西,但找不到我的工人角色。我一定对RDP有错误的印象,因为我希望在登录时看到Worker角色的主显示表单,就像在云仿真程序中本地调试它一样。但我看到的只是一个空白的桌面,上面有一些基本的服务器检查和管理例程。我甚至在事件查看器中查看了与应用程序相关的消息,但没有看到任何消息

因此,现在我一直想知道我的工作者角色是否真的在运行,尽管管理门户发出了看似积极的状态消息,我仍然想连接到我的工作者角色,以便通过Visual Developer进行调试,如果可能的话,但我无法弄清楚如何进行调试

任何有这方面经验的人都可以给我一些关于下一步做什么的可靠建议,请回复

更新:我相信我的工作者角色可能正在运行,因为我打开了一个命令窗口,执行了一个Netstat,看到它在正确的端口上侦听。然而,这可能只是我的工作者角色外壳类,它启动了自定义的EXE,我让它作为派生的进程启动。我还没有确认我的自定义EXE是否正在运行

UPDATE-2:刚从命令窗口运行了TaskList,并列出了自定义EXE

更新3:一切正常,因为我刚刚对服务进行了远程测试,所以这不是问题。仍然想知道如何从Visual Developer 2010附加到Worker角色以进行远程调试,以及是否可以像我在云仿真程序中进行本地调试时那样看到自定义EXE的显示形式


--roschler

我想你可以远程访问你的虚拟机,在那里安装Visual Studio,然后调试这个过程

我还认为可以启用远程调试(不确定其中涉及到什么,但这样的事情是存在的,并且它可以通过TCP工作)和从VisualStudio的本地实例进行调试

据我所知,这两种方法都不常用。

当你说:

但我看到的只是一个空白的桌面,上面有一些基本的服务器检查和管理例程

这正是你在Azure虚拟机上得到的。这是一个基本的操作系统安装,加上它需要运行的Azure内容和你上传的代码。默认情况下,机器上没有任何奇特的监视或健康检查可用,您需要自己提供这些监视或健康检查,而无需RDP进入机器进行检查


RDP非常适合跟踪某些问题,比如检查启动任务是否会运行,检查项目安装在哪些目录中,以及一般情况下是否有问题。如果您需要额外的工具来跟踪问题,您可以在连接到服务器时安装这些工具。例如,我已将RDPed插入服务器并安装,以跟踪内存问题。

根据其他答案,您最好将日志文件写入本地存储。如果您真的需要,您可以从RDP读取文件。请记住,在Azure上调试并不简单,这是正确的


我当时的想法是,也许您可以运行当前无法验证的,但您在rdp时可以更好地看到ui。

这里有一组文章详细介绍了如何在Azure中设置远程调试:


关键在于,您不需要在Azure上实际安装Visual Studio,只需复制远程调试器位,然后使用Azure Connect将开发人员计算机添加到虚拟网络。

您可以使用Visual Studio 2012设置远程调试

您必须使用调试器连接吗?还是仅仅看到这些信息就足够了?@Anže Vodovnik-我现在就拿我能得到的东西,但我想最终我需要调试。另外,请看我的更新说明,我原来的职位。如果您还没有看到它,那是因为我还没有完成键入。另外,是否可以像我在本地调试它时看到的那样,看到我的工作人员角色主屏幕的远程屏幕演示(RDP可以做到这一点)?我已经完成了远程调试,但速度太慢,不实用。我认为WinDebug可能是一个不错的选择,但是学习曲线非常陡峭。再次欢迎@smarx。我偶然发现的一个网页谈到了这一点,它提到了在一些额外的DLL中烘焙到Worker角色中。但我得到了我一直在寻找的答案。这不实际。我仍然希望能够看到我的自定义EXE的GUI,由于某些原因,当我使用RDP登录时,它是不可见的。当您使用RDP登录时,您的GUI上下文与您的EXE运行的GUI上下文不同。(您甚至不是以同一用户的身份登录的。)我甚至不确定您的exe是否有GUI上下文供您查看。@smarx-对。忘记了一个简单的事实:RDP不像一个注入的监控程序,而是一个单独登录的用户,谢谢。当我在本地调试由我的C#Worker角色代码生成的自定义EXE时,在云仿真程序中,它会出现一个带有日志窗口和其他一些东西的显示窗体;主应用程序屏幕(如果愿意)。这与EXE的行为完全相同