如何在2个不同端口上使用 Delphi 创建的apache中的多个dll

92vpleto  于 2023-02-12  发布在  Apache
关注(0)|答案(2)|浏览(165)

我已经创建了2 apache dll使用delphi和这个指南:
https://docwiki.embarcadero.com/RADStudio/Sydney/en/DataSnap_REST_Application_Wizard_for_Windows
然后我试着在apache上安装第一个,就像这样:

LoadModule webbroker_module modules/mod_webbroker.dll
<Location /xyz>
  SetHandler mod_webbroker-handler
</Location>

而且很有效。
当我尝试添加第二个模块时,如下所示:

LoadModule reportbuilder_module modules/mod_reportbuilder.dll 

<Location /rbbin>
  SetHandler mod_reportbuilder-handler
</Location>

Alias /rbcache/ "C:/Apache24/htdocs/rbbin/rbcache/"
<Directory "C:/Apache24/htdocs/rbbin/rbcache">
  Options All
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

我收到来自apache的错误消息
每个应用程序只有一个数据模块
我想要实现的是,如果我在端口85上运行,它将使用模块1,如果我在端口86上运行,它将使用模块2。
我该怎么做呢?
谢谢

1mrurvl1

1mrurvl11#

似乎两个DataSnap DLL都调用了一个想要创建TDataModule的例程。第二个调用失败,并显示消息“每个应用程序只有一个数据模块”。
要验证,您可以:

  • 远程调试DLL启动代码。
  • 使用一个DataSnap DLL和一个未使用基于DataSnap的DLL进行测试。

但是,我不知道是否可以在同一个Apache进程中使用两个或多个DataSnap DLL。

nbnkbykc

nbnkbykc2#

一种易于测试的可能变通方案:

  • 运行两个Apache HTTP服务器示例(在不同的端口上)。

这将使DataSnap DLL保持分离,每个进程一个。
对于从“外部世界”(Internet)进行的访问,您可以使用反向代理,以便所有客户端都可以使用默认HTTP(S)端口进行连接。

相关问题