编辑

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();
    }

当前路径:

C# 将通过远程桌面(或其他)在本地运行的 WinForm 应用程序连接到数据库-LMLPHP

所需路径:

C# 将通过远程桌面(或其他)在本地运行的 WinForm 应用程序连接到数据库-LMLPHP

最佳答案

我敢肯定,那是行不通的,因为...

RDP(远程桌面协议(protocol))是一种将您从远程计算机连接到终端服务器上的 session 的协议(protocol)。这就是目的。在该 session 中,您可以启动程序、打开文档并完成工作。就像你坐在那台机器前一样。好处是,这可以由多个用户完成,仅取决于用户许可证的数量和硬件能力。

有一些特殊情况,例如您可以在启动时自动启动程序。那么您的 session 仅限于该程序,并会在程序结束时结束。但这只是一种限制。您仍将为此启动 session 。

此外,每个 Windows 版本中都有一个小版本的终端服务器,而不仅仅是服务器。这可以以相同的方式用于远程连接。

所以,遗憾的是,RDP 无法连接到数据库。绝不。你需要一个程序。您可以构建一个带有 RDP-Client 的本地程序。它可以连接到远程机器上的 session 并启动另一个连接到数据库的程序。但是默认情况下您将无法在 to 程序之间进行通信,因此没有任何好处。

我想,就像其他人说的,最好是直接连接到数据库。

关于C# 将通过远程桌面(或其他)在本地运行的 WinForm 应用程序连接到数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58318062/

10-17 00:42