0

Windows サービスについて学習
しています セットアップ プロジェクトを使用して Windows サービスをインストールしました 現在、プロジェクト インストーラーのコンストラクター メソッドで
Windows サービスのコードに変更を加えました サービス
がすでにインストールされているかどうかを確認しています

 ServiceController[] sc = ServiceController.GetServices();
        foreach (ServiceController service in sc)
            if (service.ServiceName == "VService") { flag = false; break; }
            else flag = true;
        if (flag)
        {
            ServiceInstaller ServiceInstallerObj = new ServiceInstaller();
            InstallContext Context = new InstallContext();
            ServiceInstallerObj.Context = Context;
            ServiceInstallerObj.ServiceName = "VService";
            ServiceInstallerObj.Uninstall(null);
        }

プロパティウィンドウでセットアッププロジェクトのバージョンを変更し、プロジェクトのビルド時に生成されたセットアップを実行すると、サービスをそのまま開始できないというエラーが表示されます。すでに実行されている場合は、これに対する回避策またはこれを実行できる他の方法を誰かに教えてもらえますか。ありがとう

4

2 に答える 2

0

次のようなコードを使用する必要があります。

using System.ServiceProcess;

ServiceController sc = new ServiceController(SERVICENAME);

switch (sc.Status)
{
    case ServiceControllerStatus.Running:
        return "Running";
    case ServiceControllerStatus.Stopped:
        return "Stopped";
    case ServiceControllerStatus.Paused:
        return "Paused";
    case ServiceControllerStatus.StopPending:
        return "Stopping";
    case ServiceControllerStatus.StartPending:
        return "Starting";
    default:
        return "Status Changing";
}

ステータス フラグは、サービスが実行中であることを示します。

于 2013-04-04T15:00:48.790 に答える