访问远程服务器但不在本地访问时出错

时间:2018-07-04 19:04:00

标签: delphi winapi

我正在Windows 10 Home Premium操作系统和Dell Inspiron N7110笔记本电脑上使用BDS 2006 Win32进行编码。

我在客户端使用TSocketConnection创建了一个简单的客户端-服务器程序。它在本地运行良好。当客户端连接时,服务器端窗体弹出。我也看到客户端上的客户端数据集数据也很好。

问题:当客户端应用尝试访问我办公室中一台PC上的应用服务器时,远程服务器表单仍会在另一台PC上弹出(表明已建立连接),但是,当客户端应用试图打开客户端数据集,它将收到“错误加载Midas.dll”消息。在寻址远程PC时,这是在设计模式或运行时发生的。

仅供参考:TSocketConnection.Host设置为"IPMServer.ddns.net"(仍连接到远程PC)时,客户端TSocketConnection找到并正确解析ServerName和{{1} }处于设计模式,客户端数据集“查看” RDM表的数据源提供程序。但是,当我尝试将客户端数据集ServerGUID属性设置为True时,客户端数据集会收到Midas错误。

FYI 2:确保我的客户端应用程序在我的局域网上找到远程服务器...我正在使用URL重定向服务到我的DDNS URL。我的路由器支持NAT环回。我在LAN上保留了PC远程服务器IP地址。我的局域网将所有Active呼叫转发到应用服务器。远程PC Windows防火墙允许远程服务器发送到客户端。再次,我看到远程服务器窗体上弹出远程服务器表单。

更多仅供参考:大约八年前,我使用相同的方法和工具成功创建了TSocketConnection.Port客户-服务器系统。操作系统很可能是XP机器。一切正常。

我最近还创建了一个仅使用XE2和Indy组件的客户端-服务器系统,并使用了与TWebConnection应用程序相同的硬件和URL重定向策略。这种“仅Delphi和Indy”效果很好。我已经创建了这种“仅Delphi和Indy”方法的两个版本。一种在客户端使用客户端数据集,另一种在客户端使用Component Ace的Absolute数据库。远程服务器在所有描述的系统中使用ADO和Firebird。两者都完全不需要Datasnap就能很好地工作! (但是Datasnap不需要几千行代码)。

RECAP:我的TSocketConnection客户端-服务器系统在本地运行良好。当我尝试从局域网上PC上的同一应用程序服务器中提取数据时,远程服务器已连接,但客户端收到“错误加载Midas.dll”消息。

!!!只是想起...无论我在TSocketConnect子句中是否使用MidasLib编译客户端,我的客户端EXE的大小都是相同的。我不明白这与我的问题有什么关系。

0 个答案:

没有答案