2011-10-24 19 views
0

彼氏皆さん、 私は別のアプリケーションからサービスを開始するのに苦労しています。プログラムでプログラムを起動する

これは私の出発点です。 私は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も)にサービスにアクセスするための十分な権限がありませんか?

誰かがアイデアを持っている場合は、私に教えてください:) 事前に感謝!

+1

下記のリンクは、アプリケーションが下に実行するアカウントは、サービスを開始する権限を持っています参照してください? – Oded

+0

現在、管理者権限を持つシステム上の唯一のアカウントです。サービスを開始することが許可されていると思います。サービスのインストールと起動は同じアカウントを使用して行われます。 – inva

+0

サービスを手動で開始できますか? – Oded

答えて

0

私は以前この問題に遭遇しましたが、それは私のための権限ベースでした。私はそのエラーメッセージがもう少し明確であったらいいと思う。

私はこのSOの記事を見てみることをお勧めします:C#.NET: Acquire administrator rights? - 解答に提供された管理者権限にアップグレードするための良いチュートリアルがあるようです。

+0

さん、ありがとう!私は別の質問で答えを見つけたstackoverflowで尋ねた – inva

関連する問題