1

我创建了一个 32 位 RAD 服务器应用程序,我想将它托管在我的本地 IIS 服务器中。我按照这里提到的步骤但是当我尝试调用一个网络服务说http://localhost:8080/emsserver/EMSServer.dll/version我得到以下错误:

{"error":"Forbidden","description":"EMS license not found.  To resolve this issue, install an instance of Interbase with an EMS license and configure emsserver.ini to connect to the licensed instance."}

这里可能出了什么问题?

是否还要安装另一个 interbase 实例?我已经安装了 interbase 以及 RAD Studio 10.2 设置。该错误消息还建议配置 emsserver.ini。它需要什么配置更改?

我的开发环境是:RAD Studio 10.2 Enterprise on Win 10 64bit machine。InterbaseManager 是 64 位的。IBConsole 显示版本 Interbase 2017 版本 13.0.0.195。

有人可以帮我解决这个问题吗?提前致谢。

4

1 回答 1

1

如此处所述,对于 RAD 服务器生产环境,您不能将您的许可证用于 RAD Studio IDE,也不能使用“普通”InterBase 许可证。相反,为了能够在 IIS 或 Apache 上运行 RAD Server,您必须在 InterBase 中安装 RAD Server 部署许可证。直接联系 Embarcadero(或通过您当地的 Embarcadero 销售代表)申请您的 RAD 服务器部署许可证 — 从 10.2 东京版开始,现在免费包含在 RAD Studio Enterprise 或 Architect 许可证持有者中。

在程序上,根据您的托管环境,您将通过Windows 上的许可证管理器或 Linux 上的命令行将您的 RAD 服务器部署许可证添加到 InterBase:/opt/interbase/bin/LicenseManagerLauncher -i Console如此所述。这假设您之前已经集中安装了 InterBase 以服务于身份和访问管理 (IAM) 目的以及按端点记录资源数据分析(RAD Server 的 RESTful Web 应用程序框架的内置功能)。

最重要的是,根据您的问题,您必须配置每个 RAD 服务器实例——通过其关联的配置文件 (EMSSERVER.INI)——查看托管在国际基地。

默认情况下,RAD 服务器数据库在 InterBase 文件“emsserver.ib”中定义,该文件用于保存所有连接的 RAD 服务器实例的设备、用户、组和数据分析。反过来,每个 RAD 服务器实例所需的连接参数存储在关联的 EMSSERVER.INI 配置文件的 [Data] 部分下,详细如下

[Data]
InstanceName=192.168.0.127/3050
Database=/etc/ems/emsserver.ib
UserName=sysdba
Password=masterkey
SEPassword=
;# SEPassword connects to an encrypted database
Pooled=
;# Set Pooled=0 to disable connection pooled, Pooled=1 to enable (default is 1).
PooledMax=
;# Set PooledMax=10 to limit maximum pooled connection (default is 50).

如上例所示,EMSSERVER.INI 中的 [Data] 部分定义了到中央 RAD 服务器数据库(由 InterBase 提供支持)的连接参数。开始需要的连接参数是:

  • InstanceName<IP_Address|Hostname>/<Port_Number>托管 RAD 服务器数据库的 InterBase 实例的名称。

    注意:多个 RAD 服务器实例(即,此处讨论的不同机器或 docker 容器上的多个物理安装)都可以通过此InstanceName设置使用相同的远程 RAD 服务器数据库后端(由 InterBase 提供支持) 。

  • 数据库:由上面指向的 InterBase 支持的 InstanceName 服务的数据库文件(或其别名)。在 Windows 操作系统上,数据库的默认设置是:C:\Users\Public\Documents\Embarcadero\EMS\emsserver.ib. 在 Linux 上,默认设置为:/usr/lib/ems/emsserver.ib

  • UserNamePassword代表 RAD 服务器实例连接到 InterBase 支持的 RAD 服务器数据库的凭据(默认情况下,分别为:sysdbamasterkey)。

从那里继续,SEPassword参数用于连接到加密数据库。更进一步,1可以使用Pooled = 1|显式设置连接池(在没有值的情况下默认启用 {= })。0. 接下来,从这个 RAD 服务器实例到中央/公共 RAD 服务器数据库的最大池连接数由PooledMax设置确定(否则,默认为50)。

最后,有关使用 RAD 服务器开发和部署 Web 应用程序的更多信息可以在 David I 的Embarcadero RAD 服务器完整指南中找到。

于 2020-06-20T00:27:23.660 回答