我创建了一个 32 位 RAD 服务器应用程序,我想将其托管在我的本地 IIS 服务器中。我按照here中提到的步骤进行操作,但是当我尝试调用网络服务时说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。需要什么配置更改?
我的开发环境是:Win 10 64位机器上的RAD Studio 10.2 Enterprise。 InterbaseManager 是 64 位的。 IBConsole 显示版本 Interbase 2017 版本 13.0.0.195。
有人可以帮我解决这个问题吗? 预先感谢。
如此处所述,对于 RAD Server 生产环境,您不能使用 RAD Studio IDE 许可证,也不能使用“普通”InterBase 许可证。相反,为了能够在 IIS 或 Apache 的生产环境中运行 RAD Server,您必须将 RAD Server 部署许可证安装到 InterBase 中。直接联系 Embarcadero(或通过您当地的 Embarcadero 销售代表)请求您的 RAD 服务器部署许可证 - 从 10.2 东京版开始,现在 RAD Studio Enterprise 或 Architect 许可证持有者无需额外付费即可获得该许可证。
在程序上,根据您的托管环境,您将通过其Windows 上的许可证管理器或通过 Linux 上的命令行:
/opt/interbase/bin/LicenseManagerLauncher -i Console
,如此处所述,将 RAD 服务器部署许可证添加到 InterBase。假设您之前已集中安装 InterBase 以服务于身份和访问管理 (IAM) 目的,并按端点记录资源数据分析(RAD Server 的 RESTful Web 应用程序框架的内置功能)。
最重要的是,根据您的问题,您必须通过其关联的配置文件 (EMSSERVER.INI) 配置每个 RAD 服务器实例,以查看托管的这个中央/通用 IAM + 数据分析数据库(又名“RAD 服务器数据库”)在 InterBase 中。
默认情况下,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:托管 RAD 服务器数据库的 InterBase 实例的
<IP_Address|Hostname>/<Port_Number>
。
注意: 多个 RAD 服务器实例(即,如此处所述,在单独的计算机或 docker 容器上进行多个物理安装)都可以通过此 InstanceName 设置使用相同的远程 RAD 服务器数据库后端(由 InterBase 提供支持)。
Database:由上面指出的 InterBase 支持的 InstanceName 提供服务的数据库文件(或其别名)。在 Windows 操作系统上,Database 的默认设置为:
C:\Users\Public\Documents\Embarcadero\EMS\emsserver.ib
。在 Linux 上,默认设置为:/usr/lib/ems/emsserver.ib
UserName 和 Password 表示连接到 InterBase 支持的 RAD Server 数据库的 RAD Server 实例的凭据(默认情况下分别为:
sysdba
和 masterkey
)。
从这里继续,SEPassword参数用于连接到加密数据库。更进一步,可以使用
Pooled=
1
|1
显式设置连接池(在没有值的情况下默认启用 {=0
})。接下来,从此 RAD 服务器实例到中央/公共 RAD 服务器数据库的最大池连接数由 PooledMax 设置确定(否则默认为 50
)。
最后,有关使用 RAD 服务器开发和部署 Web 应用程序的更多信息,请参阅 David I 的Embarcadero RAD 服务器完整指南。
我们可以使用 Interbase 2020 服务器版试用版在 IIS 上托管 RAD 服务器吗?我在 Windows Server 上使用试用许可证时收到许可证未找到错误。