什么是远程控制/调试.NET应用程序的最佳方法?

问题描述:

我在一台专用机器上每天24小时运行一个VB.NET应用程序。我希望能够接收状态更新并远程控制/调试应用程序(即通过互联网从另一台计算机)。什么是远程控制/调试.NET应用程序的最佳方法?

这将是一个优势,如果通信是轻量级(在发送的字节条款和接受),所以我可以控制的事情,而不需要一个快速的互联网连接。另外,我现在正在IDE中运行应用程序,因为有一些未处理的异常,并且这样更容易调试。如果我不必编译它并捕获所有错误,那将会很好。

什么是设置这样的事情了最简单的方式,什么我需要知道在安全方面?

任何想法或指向进一步阅读将不胜感激。

更新

为了澄清,我需要为应用程序提供什么样的输入 - 在理论上,没有。如果一切都按计划进行,我只需将应用程序关闭并阅读某种日志即可。问题在于它不稳定(主要是因为它调用了一个非常不稳定的Web服务并返回各种奇怪的东西),因此似乎需要我持续输入。

这是我的想法,我可以做这种远程调试的唯一途径是通过捕获每个错误我所能,阅读日志,并以某种方式指示将在未来适当的行为的应用程序。当应用程序

正在运行通过IDE应用程序获取调试的事实表明,你没有得到足够的调试信息:

+0

两台机器可以通过VPN连接吗?如果它们是安全的,它会使事情变得更简单... – 2011-04-25 12:24:18

+0

我看不出为什么,但我不知道如何设置它。 – Flash 2011-04-25 12:30:58

有很多开放端的位置,但这里是我的想法死亡。在尝试通过在适当的地方使用try/catch -ing以及在EventLog使用日志relevant info解决此问题之前,请考虑解决此问题。然后可以从remote machine读取日志。

用于监视和远程控制,实在是很难说什么是没有关于您的应用程序的更多信息,最简单的解决方案。需要通过接口完成什么,你有什么访问限制,......?

基于有限的信息,我建议写一个小的Web应用程序来控制你的应用程序 - 无论是内嵌在应用程序或小服务通过其他方式控制它。这样您就可以从Web技术和安全设置众所周知的事实中受益。

编辑: 根据您的更新判断,您似乎正在寻找remote debugger

+0

谢谢,这很有帮助。关于通过界面需要做什么,我已经更新了这个问题。 – Flash 2011-04-25 12:51:47

+0

远程调试看起来像我之后的事情。有没有一种方法可以在程序运行的整个过程中不需要连接?也就是说,我可以连接,接收状态更新,处理异常(如果有),然后重新设置它? – Flash 2011-04-25 13:57:19

嗯......我不认为你需要开发一个解决方案......这听起来像一个运行在服务器上的winapp。

您是否考虑在目标机器上安装teamviewer,还是仅仅使用Windows RDC?

+0

我以前没有使用过这些服务,但是由于需要带宽,我认为这种事情不适合。如果可能,我希望能够通过(坏)拨号连接访问它。如果这工作,它将是理想的,但。 – Flash 2011-04-25 12:54:14

如果您使用的是像log4net的日志框架或NLOG你(你应该,如果你做的记录),你可以很容易地使用远程附加器。例如,log4net提供了一个远程appender,它通过tcp发送日志条目到远程服务器,在远程服务器上你可以编写一个小看门狗类型的应用程序来监视你的系统。

如果您需要更简单的解决方案,您可以使用电子邮件appender将所有错误邮寄给您。

+0

谢谢,这看起来很有用。 – Flash 2011-04-25 13:58:35