【发布时间】:2019-10-10 07:57:56
【问题描述】:
编辑
RDP 只是我当前执行此操作的方式,如果有其他方式可以连接到不同环境中的数据库,我将执行此操作。理想情况下,我希望它像可执行文件在 RDP 环境中一样连接到数据库,并且没有显示通过其他环境连接到数据库的指示。
编辑 2
我也尝试过添加第二个连接字符串并打开它,然后立即使用我当前的连接字符串,但这不起作用。
我有一个连接到数据库的 C# Win Forms 应用程序,它工作正常,但我需要将 RDP 放入正确的环境并从那里运行可执行文件。
是否可以在应用程序内部进行 RDP 连接,然后连接到数据库,而不必在 RDP 中包含可执行文件。
我尝试使用我找到的here 的 MSTSCLib 库建立一个连接字符串,但无论如何这在代码级别不起作用。
代码:
private void rdpConnect_Click(object sender, EventArgs e)
{
MSTerminalServiceControl1.Server = rdpServer.Text;
MSTerminalServiceControl1.UserName = rdpUserName.Text;
IMsTscNonScriptable secured = (IMsTscNonScriptable)MSTerminalServiceControl1.GetOcx();
secured.ClearTextPassword = rdpPassword.Text;
MSTerminalServiceControl1.Connect();
}
private void rdpDisconnect_Click(object sender, EventArgs e)
{
MSTerminalServiceControl1.Disconnect();
}
当前路径:
所需路径:
【问题讨论】:
-
这听起来像是一个 XY 问题。为什么需要 RDP 服务器上的可执行文件?
-
因为这是数据库所在的环境,我希望在本地拥有可执行文件,然后通过 RDP “隧道”然后到数据库。
-
为什么不直接使用公共 IP 地址连接到数据库并将服务器锁定到 VPN? RDP 协议不是为您想要的用途而设计的。
-
您可以连接到您可以访问的任何数据库。这是一个网络问题。您的数据库只需要在您运行应用程序的任何地方都可用。 RDP 不是数据库连接协议,因此尝试将其转换为一个是没有意义的,您想要的是从 EXE 到数据库的箭头(而不是通过 RDP)。听起来您真正需要的是 VPN
-
如果有一种方法可以在不使用 RDP 的情况下连接到另一个环境中的数据库,我会很乐意这样做。 RDP 正是我目前以非编程方式执行的方式
标签: c# winforms networking database-connection rdp