0
私は、自分のマシン上でWindowsサービスを実行し、結果をその名前でフィルタリングし、サービス名、ポート、およびサービスのステータスを表示する簡単なアプリケーションを持っています。Windowsサービスが実行されているポートを取得する方法は?
現在、名前とステータスは正常に見つかりましたが、ポートに関連するプロパティを見つけるのは難しいです。以下の方法でこの情報にアクセスできますか、私のアプローチを完全に変更する必要がありますか?
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("SELECT * FROM Win32_Service");
ManagementObjectCollection collection = searcher.Get();
foreach (ManagementObject obj in collection)
{
string name = obj["Name"] as string;
if (name.StartsWith("something"))
{
string pathName = obj["PathName"] as string;
string status = obj["State"] as string;
//string port = ??;
MyService sc = new MyService()
{
Name = name,
Status = status,
//Port = port,
Updated = true
};
}
}
ありがとうございます!
A Windowsサービスのような複数の質問があります。それぞれのバージョンとプラットフォームのタイプ)、サービスがTCP/IPを介して通信しない可能性があるためです。 Windowsサービスでは、複数のIIS Admin(IISインスタンスも管理)などを使用することがあります。通常、ポートの選択はサービスに依存し、利用可能であると仮定されているため、登録されているとは思われませんが、Windowsネットワークスタックは実行中のアプリケーションに対して接続情報を提供できる場合があります。特定のサービス、または例がありますか? –
私は説明をありがとう、参照してください。はい、私がリストしているサービスは、私が開発した他のアプリケーションを使って手動で作成したものなので、特定のものです。回避策として、選択したポートを実行可能パス内のサービス作成パスに格納していましたが、このアプローチが実装されていないポートがあります。 –