2012-03-31 17 views
2

IW11でいくつかのスタンドアロンアプリケーションを作成しましたが、うまくいきましたが、グローバル変数のようないくつかの問題を解決するいくつかの方法があります。 Delphi XE2でIW12にアップデートした後、私のアプリケーションはもう動かず、解決方法はわかりません:Delphi XE2/Intraweb12 - 実行時にポートを変更する/グローバル変数

SCFORM.PAS私はスタンドアロンサーバーアプリケーション用の新しいフォームを作成しました。ここでは、顧客のOracleデータベースの接続をチェックし、いくつかのパラメータを読み取るためのデータベース制御をいくつか配置しました。

私はセッションを監視するために、私は配列を使います(セッションデータもデータベースに保存されています)。ポートは

GServerControler.Port := portnum; 

でデータベースからパラメータ情報を読んだ後に変更されました。しかし、アプリケーションを実行した後、私はhttp:\\127.0.0.1:(portnum)とそれに接続することはできません。私は、ポートの変更は動作していないと思いますか?

だから、私の質問は以下のとおりです。

  • ランタイム
  • でプールサイズを変更する方法ランタイム
  • でポートを変更する方法は、(セッションの監視のための)正しいSCFORM.PASでグローバル変数を使用することですまたは私は別の方法を使うべきですか?

現在、約50人のユーザーが同時にオンラインになっていますが、将来的にはさらに多くなる可能性があります。

+0

あなたのアプリケーションはサービスとして実行されているか、IISプールに直接dllを導入していますか?一般に、IWServiceControllerのポートは、localhostの後に置くポートです。サービス・コントローラー上で行われた変更には、プールの再始動が必要です。 – RBA

+0

私が書いたように、私はIWのスタンドアロンサーバーバージョンを使用しています。サービスもDLLもありません。古いIWバージョンでは "IWHTTPServer.ForcePortRefresh"のようなコマンドがありましたが、IW12ではこのコマンドは存在しませんでしたか? – user1304759

答えて

0

たとえば、ポート番号をiniファイルに保存する場合は、ServerControllerのタイマーを使用してその値をロードできます。 OnCreateにロードするだけでは正常に動作しないようです。タイマーをデフォルトの1000に設定し、コードを実行した後に無効にしました。

私はCustomStandaloneフォームを使用し、ユーザーがポート番号を変更するために使用できる編集ボックスを持っています。私はOnCreateにポートの値をロードし、それをGServerController.Portに割り当てます。

関連する問題