首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Delphi Datasnap问题

Delphi Datasnap问题
EN

Stack Overflow用户
提问于 2011-02-17 21:46:46
回答 4查看 4.9K关注 0票数 2

我有一个使用-XE和Zlib过滤器的tcp/ip数据午休PC1服务器

在客户机上,这两个过滤器都是在DataSnap TSqlConnection中定义的。

当客户端连接到服务器时,我得到一个“连接优雅关闭”错误消息。

如果我只单独使用PC1过滤器,就没有问题了。

如果我只使用Zlib过滤器,那么就没有问题了。

关于如何使两个过滤器同时工作,有什么想法吗?

EN

回答 4

Stack Overflow用户

发布于 2011-02-18 07:52:40

您还需要在客户端应用程序中部署libeay32.dll和ssleay32.dll。

引用我的Delphi开发课件手册:

“如果使用TCP/IP以及RSA和PC1筛选器部署PC1独立服务器,那么还必须部署两个特定于Indy的SSL DLL: libeay32.dll和ssleay32.dll --或者确保它们已经存在于服务器机器上。这些DLL是RSA过滤器(加密PC1过滤器使用的密码)所需的。如果没有这两个DLL,任何想连接到服务器的客户端都会得到一个”连接关闭“消息,因为服务器无法加载两个DLL来启动RSA过滤器来加密PC1密钥,等等。

顺便说一下,任何DataSnap客户端都需要相同的两个DLL,无论是使用RSA和PC1过滤器连接到TCP/IP服务器,还是使用HTTPS连接到ISAPI过滤器。“

格罗杰斯,鲍勃·斯沃特

票数 4
EN

Stack Overflow用户

发布于 2011-02-21 10:13:28

这可能是DataSnap中的一个bug。我也有同样的问题,这是QC报告。http://qc.embarcadero.com/wc/qcmain.aspx?d=91180

投票确定QC报告,等待德尔菲-XE的更新.

编辑1一个疯狂的想法,不要在客户端上指定过滤器。

这是Pawel Glowacki关于传输过滤器的一篇论文。http://edn.embarcadero.com/article/41293,他特别提到应该将ZLibCompression添加到客户端DataSnap驱动程序的Filters属性中。

我已经测试过不这样做,而且效果很好。您必须将DBXCompressionFilter添加到uses子句,否则就会出现"ZLibCompression未注册“错误。

由于服务器上有PC1和ZLibCompression,而客户机上没有过滤器,所有的接缝都会按预期的方式工作。我检查了流量,并对其进行加密和压缩。

在Embarcadero的人确认这是我应该做的事情之前,我会三思而后行。

编辑2这里是讨论论坛上的一篇文章,它说足够来在服务器上添加过滤器。不是Embarcadero直接而是非常接近:) https://forums.embarcadero.com/thread.jspa?threadID=48875&tstart=0

票数 4
EN

Stack Overflow用户

发布于 2011-03-18 19:17:50

,直到Embarcadero的人确认这是应该的方式,我在使用它之前会三思而后行。

这是真的。如果您没有在客户端上指定过滤器,则在连接期间在初始握手协议中告知服务器的过滤器是什么,然后自动添加它们。这是一种完全合理和安全的使用过滤器的方法。

但是,请注意,相反的情况并不是这样。服务器不采用来自连接客户端的过滤器。如果客户端上有RSA过滤器,而服务器上没有匹配的RSA过滤器,那么连接上就会有异常,也就是说服务器没有匹配的RSA过滤器。客户端上的任何其他筛选器(而不是服务器上的)都将被忽略。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5035085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档