C# 我可以通过网络服务在局域网上唤醒我的远程计算机吗?

C# 我可以通过网络服务在局域网上唤醒我的远程计算机吗?,c#,C#,我有一个在远程机器上运行的应用程序。与应用程序的唯一联系是通过Web服务,我可以向它发送关闭命令,但如何再次启动它?我希望有一个调度类型的服务,在我的机器上有一个windows服务,在上午8:00它通过webservice(??)发送一个启动命令,在下午4:00它通过webservice发送一个关机命令。关机我可以做,但唤醒局域网的事情-因为它不是局域网,它可能是互联网-有什么建议吗 干杯,如果web服务与需要启动的机器位于同一本地LAN上的单独机器上,则应该可以使用LAN唤醒技术让web服务启

我有一个在远程机器上运行的应用程序。与应用程序的唯一联系是通过Web服务,我可以向它发送关闭命令,但如何再次启动它?我希望有一个调度类型的服务,在我的机器上有一个windows服务,在上午8:00它通过webservice(??)发送一个启动命令,在下午4:00它通过webservice发送一个关机命令。关机我可以做,但唤醒局域网的事情-因为它不是局域网,它可能是互联网-有什么建议吗


干杯,

如果web服务与需要启动的机器位于同一本地LAN上的单独机器上,则应该可以使用LAN唤醒技术让web服务启动它。

您将无法使用web服务调用您想要唤醒的实际机器来唤醒远程机器。你必须给它寄一个“神奇”的包裹

幸运的是,有很多工具和实用程序可以让你很容易地做到这一点

检查-这应该对你有好处

同样,如果你愿意的话,没有什么能阻止你滚动你自己的发送魔法包的客户端


如果您想从web服务(显然不在目标机器上)运行此服务,只需使用
System.Diagnostics.Process.Start()

来包装
wolcmd.exe。我的看法是,您需要通过VPN连接到远程lan,通过防火墙连接到远程lan,使其与运行Web服务的子网和ip地址相同!这应该足够安全,如果您这样做,只有您的机器才能远程关闭。我的感觉是-你需要一直直接连接到远程端点…但在我的脑海里,这听起来显然是不可能的,如果您的机器进入睡眠状态,远程端点将如何知道您的ip地址……您需要小心某些驱动程序,它们会拒绝进入睡眠状态,从而阻止您的机器进入睡眠状态。我碰巧有一个3G移动宽带,我的上网本拒绝睡眠,除非我关闭连接并将其拔下(即使它仍然插上电源,它也拒绝睡眠!),这就是我说的原因,如果你使用VPN,它进入睡眠状态,那么连接就会丢失——这是我的看法。你觉得怎么样

希望这有帮助, 顺致敬意,
Tom。

如果web服务运行在实际休眠的机器上,那么这是不可能的。简单。顺便问一下,这个web服务在哪里运行?