我用 C# WPF 和 VS2012 编写了一个应用程序,它使用 RDC 控件 (AxMSTSCLib.AxMsRdpClient7) 连接到远程服务器。
该应用程序在 Win 7 中运行良好,但是当我将它安装在 Windows 8 机器上时,它一连接到远程服务器,它就会自行断开连接。我们所能看到的只是应用程序主屏幕的闪烁。
我检查了 IMsTscAxEvents_OnDisconnectedEvent 并且返回的错误代码 = 1 根据表格显示 {1,“本地断开连接。这不是错误代码。”},
我尝试在 Win 7 兼容模式下运行,但没有任何改变。
我已经在分隔位置的 2 个不同的 Win 8 盒子中对其进行了测试,问题是一样的。在所有 Win 7 中,它都可以正常工作。
在 Win 8 机器中,如果我尝试手动连接,使用应用程序和操作系统附带的 RDC 控件的相同凭据,它会按预期工作而不会断开连接。会不会是我在应用程序中使用的 AxMSTSCLib.AxMsRdpClient7 在 Win 8 中不受支持?
有人知道吗?目前我不知道该走哪条路。
这是代码。RDC 控件托管在表单用户控件上
// 此行在其他地方执行。放在这里仅供参考。私有 AxMSTSCLib.AxMsRdpClient7 rdc;
public void ConnectToServer(string UserName, string Password, string ServerIP)
{
int portNumber = 3389; // 5306
try
{
if (ServerIP.Contains(":"))
{
portNumber = Convert.ToInt16(ServerIP.Substring(ServerIP.IndexOf(":") + 1, 4));
rdc.Server = ServerIP.Remove(ServerIP.IndexOf(":"));
}
else
{
rdc.Server = ServerIP;
}
rdc.UserName = UserName;
rdc.AdvancedSettings7.RDPPort = portNumber;
rdc.AdvancedSettings7.RedirectPrinters = true;
rdc.AdvancedSettings7.RedirectClipboard = true;
rdc.AdvancedSettings7.RedirectSmartCards = true;
rdc.AdvancedSettings7.AuthenticationLevel = 2;
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdc.GetOcx();
secured.ClearTextPassword = Password;
rdc.Connect();
}
catch (Exception Ex)
{
MessageBox.Show("Error connecting to gateway server" + "\n Error: " + Ex.Message, "Error Connecting", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}