【问题标题】:Delphi XE2 / Intraweb12 - Changing Port at runtime / global variableDelphi XE2 / Intraweb12 - 在运行时更改端口/全局变量
【发布时间】:2012-03-31 08:17:21
【问题描述】:

我用 IW11 编写了一些独立的应用程序,效果很好,但也许有一些更好的方法可以解决一些问题,比如全局变量。在 Delphi XE2 上更新到 IW12 后,我的应用程序不再运行,我不知道如何解决:

SCFORM.PAS 中,我为独立服务器应用程序创建了一个新表单。在这上面,我放置了一些数据库控件来检查客户oracle数据库的连接,并读取了一些参数。

对于会话监控,我使用一个数组(会话数据也存储在数据库中)。从数据库中读取参数信息后端口已更改

GServerControler.Port := portnum;

但运行应用程序后,我无法使用http:\\127.0.0.1:(portnum) 连接到它;我猜端口更改不起作用?

所以,我的问题是:

  • 如何在运行时更改端口
  • 如何在运行时更改池大小
  • SCFORM.PAS 中使用全局变量是否正确(用于会话监控)还是应该使用其他方式?

目前大约有 500 个用户中的 50 个同时在线,但未来可能会更多。

【问题讨论】:

  • 您的应用是作为服务运行还是直接在 IIS 池中部署 dll?通常,IWServiceController 的端口是您放在 localhost 之后的端口。对服务控制器所做的任何其他更改都需要重新启动池。
  • 正如我所写,我使用的是独立服务器版本的 IW,没有服务或 dll。在较早的 IW 版本中,有一个类似“IWHTTPServer.ForcePortRefresh”的命令,但在 IW12 中这个命令不存在?!

标签: delphi delphi-xe2 intraweb


【解决方案1】:

如果您将端口号保存到 ini 文件中,例如,您可以使用 ServerController 上的计时器加载该值。仅加载OnCreate 似乎无法正常工作。我将计时器设置为默认值 1000,并在运行代码后将其禁用。

我使用CustomStandalone 表单,上面有一个编辑框,用户可以使用它来更改端口号。我在OnCreate 中加载端口值并将其分配给GServerController.Port

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-09
    • 1970-01-01
    • 2012-03-02
    相关资源
    最近更新 更多