嵌入式 Firebird/Delphi 会导致防火墙“命中”吗?
我正在考虑将 Interbase 6 / Delphi 7 应用程序移植到 Delphi 2007 中的嵌入式 Firebird。我们遇到的问题之一是让我们的用户(通常是一群不熟练的人,真的 - 虽然我很喜欢他们,自然)在他们的防火墙中解锁我们的应用程序。 Windows 防火墙本身相当简单,但通常他们运行 McAfee 或类似的产品(他们倾向于购买预装了这些东西的廉价戴尔),而且似乎这些东西的每个变体都有稍微不同的用户界面。 叹气
不过,抱歉,我离题了。开门见山;如果我的 Delphi 应用程序连接到嵌入式 Firebird 数据库,我是否仍然需要在用户防火墙中全部/打开某些内容(就像我目前在安装连接到“正常”IB6 的内容时所做的那样)?
如果您已经读到这里(谢谢)——嵌入式 Firebird 可以在一台机器上同时使用吗?假设我们有 2 个应用程序,它们都想要使用不同的数据库 - 用户是否可以在同一台计算机上同时运行这两个应用程序,或者是否存在某种端口绑定,我们必须这样做解决?
I'm looking at porting an Interbase 6 / Delphi 7 application to embedded Firebird in Delphi 2007. One of the problems we have is getting our users (often quite an unskilled bunch, really - though I love them to bits, naturally) to unblock our applications in their firewall. Windows firewall itself is fairly straightforward but often they are running McAfee or similar (they tend to buy cheap Dells with this stuff pre-installed) and it seems that each and every variation of this stuff has a slightly different user interface. sigh
Still, I'm digressing, sorry. Straight to the point; If my Delphi app connects to an embedded Firebird database, will I still need to all/open something in the user's firewall (as I currently do when installing stuff that makes a connection to 'normal' IB6)?
And if you've read this far (thanks) - can embedded Firebird be used concurrently on a machine? Let's say we have 2 applications, both of which want to use DIFFERENT databases - could the user run both of these apps simultaneously on the same machine or is there some kind of port binding that goes on under the hood, which we'd have to work around?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我从来没有遇到过防火墙或带有嵌入式 Firebird 的 McAfee 的问题。 (我认为这是因为嵌入式并不是真正的“服务器”,并且不需要端口来操作)
是的,您可以同时拥有两个应用程序,只需保留可执行文件和文件即可。数据库位于两个不同的文件夹中。
I have never had a problem with firewalls or McAfee with embedded firebird. (I assume this is because embedded is not really a 'server' and does not require a port to operate)
Yes you can have two apps concurrently, just keep the executables & databases in two different folders.
即使在本地计算机上的非嵌入式安装中使用 Firebird,我们也从未在数百次安装中遇到任何防火墙问题。您甚至不必使用 TCP/IP 来连接到数据库。我们确实使用 TCP/IP,但使用本地共享内存协议可以完全避免该问题。
Firebird 是一个优秀的嵌入式或半嵌入式数据库。我们只是将其安装在正常模式下,并且它在后台运行,无需任何用户干预,每天 24 小时,连续多年。
Even using Firebird in a non-embeded install on the local machine we have never bumped into any firewall issues in hundreds of installations. You don't even have to use TCP/IP to connect to the database. We do use TCP/IP, but using the local shared memory protocol would avoid the issue entirely.
Firebird makes an excellent embedded or semi-embedded database. We just install it in it's normal mode and it runs in the background without any user intervention 24x7 for years at a time.
由于 Firebird 的嵌入式版本不使用 TCP/IP 与数据库通信,因此您可以在单用户计算机上正常使用。请记住,Firebird Embedded 是单用户的,您将无法让两个应用程序同时与同一个数据库通信。为此,您需要在计算机上安装 Firebird 服务器,并在两个应用程序上的连接字符串中使用 localhost:C:\Data\MyDB.FDB。
我使用 UIB 与 Firebird 对话(我为我使用的 OPF 编写了一个持久层),它是线程安全的(与 IBX 不同),而且我发现它比 IBX 明显更快。有一个 JVCL 附带的版本和一个稍晚的版本,位于 http://www.progdigy.com
As the embedded version of Firebird doesn't use TCP/IP to talk to the database, you'll be fine on single user machines. Bear in mind that Firebird Embedded is single-user and you won't be able to get two apps talking concurrently to the same database. To do that you'd need to install the Firebird server on the machine and in the connection string use localhost:C:\Data\MyDB.FDB on both apps.
I use UIB to talk to Firebird (I wrote a persistence layer for the OPF I use using it), it's thread-safe (unlike IBX) and I've found it to be appreciably faster than IBX. There's a version that comes with JVCL and a slightly later version at http://www.progdigy.com