2011-07-04 112 views
6

我现在已经设置了Windows Azure环境,以便可以使用远程桌面访问我的工作人员角色。但是,目前我不确定如何继续。经过大量挖掘,我发现一个网站处于脱机状态,但在Google的缓存中,提到了从Visual Studio调试器附加到在Azure Cloud中运行的工作者角色。但我只有Visual Developer(不是工作室)2010,并且我已经搜索了所有内容,并且据我所见,没有这样的选项可以连接到远程服务器。我可以毫无错误地将我的项目发布到Azure Cloud,并且我的工作者角色的“健康”实例显示为活动并正在运行。如何在Windows Azure中使用远程桌面调试工作者角色?

我通过Azure管理门户与RDP连接。登录工作正常,远程桌面窗口。我搜索了很多我能找到的东西,但无法找到我的工作人员角色。我必须对RDP产生错误印象,因为我希望在登录时看到工作角色的主要显示形式,就像我在云模拟器中本地调试时一样。但是,我所看到的只是一个带有一些基本级服务器检查和管理例程的空白桌面。我甚至检查过与事件查看器相关的应用程序消息,但没有发现任何消息

因此,现在我不知道我的工作者角色是否真的在运行,尽管来自管理门户的状态消息看起来很积极,我仍然想通过Visual Developer附加到我的工作者角色以进行调试,如果它是可能的,但我无法弄清楚如何。

任何人都有这方面的经验,可以给我一些关于下一步做什么的坚实提示,请回复。

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

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

UPDATE-3:一切正常,因为我只是运行服务的远程测试,所以这不是问题。还想知道如何附加Visual Developer 2010中的工作者角色以进行远程调试,以及是否可以像在云模拟器中进行本地调试时那样查看自定义EXE的显示形式。

- roschler

+0

你有使用调试器连接设置远程调试?或者仅仅看到这些消息就足够了? –

+0

@AnžeVodovnik - 我会拿我现在可以得到的,但最终我需要调试我会想的。另外,请查看我的原始文章的更新说明。如果你还没有看到它,那是因为我还没有完成输入。 –

+0

另外,是否有可能看到我的工作角色主屏幕的远程屏幕显示,就像我在本地调试时看到的那样(RDP是否这样做)? –

回答

1

当你说:

但不是所有我看到的是一个空白桌面与一些基础级别的服务器检查和管理程序。

这正是您使用Azure VM所获得的结果。这是一个基本的操作系统安装,以及它需要运行的最低限度的Azure内容以及您上传的代码。默认情况下,机器上没有可用的监控或运行状况检查,因此您需要自己提供这些监控器或者运行状况检查程序,而无需将RDP装入机器进行检查。

RDP对于追踪某些问题非常有用,例如检查启动任务是否运行,检查哪些目录项目已安装,并且通常很糟糕。如果您需要额外的工具来追踪问题,则可以在连接到服务器时安装它们。例如,我将RDP装入服务器并安装了Microsoft Debugging Tools,以追踪内存问题。

+0

当我在本地调试由我的C#工作者角色代码产生的自定义EXE时,它在云模拟器中出现了具有日志窗口和其他一些事情的显示窗体;主要应用程序屏幕,如果你愿意。这与EXE独立运行完全相同。换句话说,它不是一个无窗口的后台服务,甚至是一个控制台应用程序。这是一个完整的Windows GUI应用程序。当我登录到RDP控制台时,即使它运行良好,我也没有看到应用程序的GUI。我试图找出为什么我没有看到GUI元素,以及是否有办法。 –

+0

@knightpfor - 感谢Microsoft调试工具链接。如果您知道有一个教程展示了如何使用Azure和Visual Developer 2010进行安装,请告诉我。 –

+3

当您将RDP添加到您的VM中时,您将作为您在RDP设置中指定的特定用户执行此操作。你的工作者角色并不像这个用户那样运行,它作为一个系统帐户运行(我不记得哪一个是我的头顶)。就像任何其他RDP会话一样,您无法看到其他用户的桌面。 – knightpfhor

1

我想你可以远程连接到你的虚拟机,安装Visual Studio那里,调试过程...

我也想这也许可以启用远程调试(不知道那里涉及的是什么,但存在这样的事情,它通过TCP工作),并从Visual Studio的本地实例进行调试。

据我所知,通常都没有做。

+0

我已经完成了远程调试,但实践起来太慢了。我认为WinDebug可能是不行的,但学习曲线非常陡峭。 –

+0

你好@smarx。我偶然发现的那个网页谈到了这个提到的一些额外DLL中的烘焙到工作者角色中。但我得到了我正在寻找的答案。这是不实际的。我仍然希望能够看到我的自定义EXE的GUI,由于某些原因,当我使用RDP登录时,它是不可见的。 –

+0

@Oliver Bock - 我会看看WinDebug,谢谢。 –

1

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

我当时的想法是,也许你可以运行process using the user's credentials. I目前无法验证,但是当你使用rdp时,你有更好的机会看到ui。

+0

关于用户凭证的有趣想法。听起来好像我的下一个项目需要挖掘本地存储和SQL存储。希望Azure SQL与MySQL没有太大差别。 –

4
+0

链接不工作:( –

+0

@UriMay:blogs.u2u.be应用程序很糟糕,但您可以从整个页面视图中获得有用的内容: http://blogs.u2u.be/peter/?page= 2和 http://blogs.u2u.be/peter/?page=1 –

2
+0

这里有一点总结会很有用 –

+0

Windows Azure SDK 2.2版本增加了对远程调试许多类型的Windows Azure资源的支持 http ://weblogs.asp.net/scottgu/archive/2013/10/22/windows-azure-announcing-release-of-windows-azure-sdk-2-2-with-lots-of-goodies.aspx –