2011-01-20 6 views
0

ウィンドウサービスでホストされているリモートオブジェクトがあり、初期化に時間がかかることがあります。問題は、時間がかかりすぎるために最初のクライアント要求がほとんど失敗しますが、次の要求は成功します。サービス開始時にすぐにリモートオブジェクトを作成する方法があるのだろうかと思います。 - リモートオブジェクトの作成を強制するよりも、他の効果はありません無害な何か.NET Remoting:サーバー上のオブジェクトをアクティブ(リモート)する方法はありますか?

ChannelServices.RegisterChannel(new HttpChannel(8080), false); 
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(MyService), "MyService", WellKnownObjectMode.Singleton); 

答えて

0

あなたはあなたのサービスのOnStart産卵ヌル取引を行うプロセスを持つことができます:ここでサービスのOnStartメソッド(のコード)があります。

あなたができる別のことは、スタートアップ処理にすべての高価な初期化を行い、結果をオブジェクトに保存することです。リモートオブジェクトの初期化は、あらかじめ構築されたオブジェクトへの参照を初期化することに過ぎません。リモートオブジェクトは、起動時に構築したオブジェクトによって公開されるメソッドのプロキシとして機能すると言うことができます。

リモーティングで遊んでからずっとずっと間違っている可能性がありますので、サービス自体がクライアントとして動作し、リモートオブジェクトを初期化するための呼び出しを行うことはできません。

+0

ジム。あなたのヒントは素晴らしいです!どうもありがとう! – newman

+0

@miliu:どのチップを使いましたか?あなたは初期化を行うためのプロセスを生成しましたか、 'OnStart'で初期化の高価な部分をしましたか? –

+0

私は2番目の段落であなたの提案を使用しました。私は自分のリモートオブジェクトをシングルトンにしました(幸いなことに、これは大丈夫です)。 – newman

関連する問題