如何自动测试与 Windows 2003 服务器的连接?
我正在编写一个应用程序来测试与一组 VM Windows 2003 服务器的 RDP 连接。 典型的故障模式是服务器上运行的某些代码陷入循环,从而阻止 RDP 连接以及大多数其他类型的连接。 发生这种情况时,您仍然可以 ping 服务器并且似乎没问题,但您无法执行其他任何操作。
我正在使用 C#、.NET 3.5 和 RDP 版本 6.1——我尝试启动 ActiveX RDP 客户端 (MSTSC..),但这需要人工干预,并且效果不佳。 我在这里找到了另一篇文章,其中有来自 Expert Sexchange 的可能解决方案,但该解决方案使用 Java 和 Net::Telnet 库,而我无权访问该库。
.NET 阵营有什么想法吗?
谢谢, 戴夫
I am writing an app to test RDP connectivity to a bank of VM Windows 2003 servers. The typical failure mode is for some code running on the server to get itself in a loop, preventing RDP connections -- and most any other type of connection, as well. When this happens, you can still ping the server and it seems to be fine, but you cannot do much of anything else.
I am using C#, .NET 3.5 and RDP version 6.1 -- I have tried launching the ActiveX RDP client (MSTSC..) but that requires human intervention and doesn't work very well. I found another post here that has a possible solution from Expert Sexchange, but that solution uses Java and the Net::Telnet library, which I do not have access to.
Any ideas from the .NET camp?
Thanks,
Dave
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用未记录的 WinStationServerPing API检查与终端服务器的连接。 基本上,如果此功能成功,则意味着终端服务器可用。
这是函数的(Delphi)签名(从 winsta.dll 导出):
You can use the undocumented WinStationServerPing API to check connectivity to Terminal Server. Basically if this function succeeds it means that Terminal Server is available.
This is the (Delphi) signature of the function (exported from winsta.dll):
使用 TCPClient 尝试连接到3389(或您配置的任何端口)上的服务器如果获得连接,则断开连接并报告成功,如果连接被拒绝则报告失败。
编辑:一些方便的代码
Use a TCPClient to try and connect to the servers on 3389 (or whatever port you are configured for) if you get a connection, disconnect and report success, if the connection is refused report failure.
EDIT: Some handy code