2

使うとき

string computerName;
string applicationName;

catalog = new COMAdminCatalog();
if (computerName != ".")
{
    catalog.Connect(computerName);
}
catalog.StartApplication(applicationName);

com +アプリケーションは実行されますが、コンポーネントサービスでコンポーネントのステータスを確認すると、各コンポーネントにオブジェクトが表示されません。オブジェクト、アクティブ化された列、およびプール列には何もありません。

オブジェクトを表示するにはどうすればよいですか?

4

1 に答える 1

0

表示されているコードはCOM+アプリケーションを起動していますが、[オブジェクト]、[アクティブ化]、[プール]、[通話中]、および[通話時間(ms)]列は、そのアプリケーション内で起動されたオブジェクトの数を示しています。

アプリケーションは、サービスをホストするプロセスです。各オブジェクトはサービスのインスタンスです。

通常、アプリケーションの起動時に自動的に作成されるオブジェクトインスタンスはありません。オブジェクトインスタンスは、New(VB)、CreateObject(VB)、またはCoCreate ...(C ++)を呼び出して、具体的にインスタンス化したときに作成されます。

ただし、オブジェクトがプールされるように設定できます。オブジェクトをプールする場合、アプリケーションの起動時に最小数のオブジェクトを起動する必要があります。オブジェクトプーリングは、従来、コンポーネントサービスでクラスを右クリックし、[プロパティ]-> [アクティベーション]を選択して、そこに正しいプロパティを設定することで設定されていました。C#では、これはクラスおよびコンポーネントサービスのObjectPooling属性を使用して設定できます。

これはあなたを助けますか?

于 2012-11-23T15:22:56.950 に答える