2012-03-31 25 views
2

我寫了一些獨立的應用程序與IW11,它工作正常,但也許有更好的方法來解決像全局變量一些問題。在Delphi XE2上更新到IW12之後,我的應用程序不再運行,我不知道如何解決它:Delphi XE2/Intraweb12 - 在運行時更改端口/全局變量

SCFORM.PAS我爲獨立服務器應用程序創建了一個新表單。在此,我放置了一些數據庫控件來檢查客戶oracle數據庫的連接並讀取一些參數。

對於會話監控我使用一個數組(會話數據也存儲在數據庫中)。該端口被從後數據庫中讀取參數信息改變與

GServerControler.Port := portnum; 

但在運行的應用程序後,我不能http:\\127.0.0.1:(portnum)連接到它;我猜這個端口改變不起作用了?

所以,我的問題是:

  • 如何更改端口在運行時
  • 如何在運行時
  • 改變池的大小是在使用全局變量SCFORM.PAS正確(會話監控)或者我應該用另一種方式?

目前,500個用戶中有50個用戶同時在線,但未來可能會更多。

+0

您的應用程序是作爲服務運行的,還是直接在IIS池中部署dll?一般來說,IWServiceController的端口是您在localhost之後放置的端口。對服務控制器進行的任何其他更改都需要重新啓動池。 – RBA 2012-04-01 20:09:56

+0

正如我寫的,我正在使用IW的獨立服務器版本,沒有服務或DLL。在較早的IW版本中,有一個像「IWHTTPServer.ForcePortRefresh」這樣的命令,但是在IW12中這個命令不存在?! – user1304759 2012-04-02 06:40:11

回答

0

例如,如果將端口號保存到ini文件中,則可以使用ServerController上的定時器加載該值。它似乎不能正常工作,只需加載OnCreate。我將我的計時器設置爲默認值1000,並在運行代碼後將其禁用。

我使用CustomStandalone表單並在其上有一個編輯框供用戶用來更改端口號。我在OnCreate中加載端口值並將其分配給GServerController.Port