彼氏皆さん、 私は別のアプリケーションからサービスを開始するのに苦労しています。プログラムでプログラムを起動する
これは私の出発点です。 私はServiceBaseを継承する自分のクラスに通常のサービスをラップしています。 さらに、System.Configuration.Install.Installerから継承したProjectInstallerインスタンスを取得し、システムに正しい方法でサービスをインストールします。
は、それは、これらのパラメータを持っている:
serviceInstaller1.ServiceName = "NameOfService";
serviceInstaller1.StartType = System.ServiceProcess.ServiceStartMode.Manual;
serviceProcessInstaller1.Account = System.ServiceProcess.ServiceAccount.LocalService;
このProjectInstaller出力は通常のC#.NETのインストールプロジェクトを通じてインストールされています。
サービスは、システム制御 - >管理 - >サービス内のサービスのGUIリストに表示されます。しかし、私が疑問に思っているのは、私がcmd.exeを使用して "net start"を入力すると、サービスがサービスのリストに表示されないということです。
これまで私が持っていたのです。 他のアプリケーションからサービスを開始したいと考えています。このアプリケーションは、
ServiceController
から継承し、私は今
Start()
メソッドを呼び出したい場合は、私はサービスがローカルマシンで開くことができなかったことを私に伝えるエラーを取得します。
私は上記と同じサービス名を使用します。私はインストーラでサービスが正しくインストールされていると思っていたので、それについては混乱しました。 また、私のアプリケーション(およびcmd.exeも)にサービスにアクセスするための十分な権限がありませんか?
誰かがアイデアを持っている場合は、私に教えてください:) 事前に感謝!
下記のリンクは、アプリケーションが下に実行するアカウントは、サービスを開始する権限を持っています参照してください? – Oded
現在、管理者権限を持つシステム上の唯一のアカウントです。サービスを開始することが許可されていると思います。サービスのインストールと起動は同じアカウントを使用して行われます。 – inva
サービスを手動で開始できますか? – Oded