29

Windows サービスを作成し、サーバーにインストールしました。正常に動作しているように見えます。つまり、本来の目的を果たしています。しかし、リモート デスクトップ経由でサーバーにログオンすると、次のメッセージが表示されます。

コマンド ラインまたはデバッガーからサービスを開始できません。最初に Windows サービスを (installutil.exe を使用して) インストールし、次に ServerExplorer、Windows サービス管理ツール、または NET START コマンドで開始する必要があります。

をクリックしてサービス エクスプローラーに移動し、サービスを確認します。正常に開始されました。エラーは報告されていません。

これをインストールしたので、ローカル システムを "ログオン" として使用します。

ありがとう。

4

3 に答える 3

42

MainクラスのメソッドProgramを次のように変更します。

    /// <summary>
    ///   The main entry point for the application.
    /// </summary>
    private static void Main()
    {
        var myService = new MyService();
        if (Environment.UserInteractive)
        {
            Console.WriteLine("Starting service...");
            myService.Start();
            Console.WriteLine("Service is running.");
            Console.WriteLine("Press any key to stop...");
            Console.ReadKey(true);
            Console.WriteLine("Stopping service...");
            myService.Stop();
            Console.WriteLine("Service stopped.");
        }
        else
        {
            var servicesToRun = new ServiceBase[] { myService };
            ServiceBase.Run(servicesToRun);
        }
    }

Startサービス クラスにメソッドを追加する必要があります。

    public void Start()
    {
        OnStart(new string[0]);
    }

プロジェクトのプロパティの「アプリケーション」タブで、プロジェクトの出力タイプを「Windows アプリケーション」ではなく「コンソール アプリケーション」に変更します。F5 キーを押すだけでデバッグを開始できますが、実行可能ファイルを Windows サービスとして実行することもできます。

于 2012-12-21T10:10:21.423 に答える
-4

CTRL-ALT-CANC (*) を押して、[サービス] タブに移動します。サービスのリストが表示されるので、開始する必要があるサービスを検索して選択し、「開始」をクリックします。そこにない場合は、アンインストールされたか、(正しくは?) インストールされていないか、何らかの理由でサービスが Windows に認識されていない可能性があります。

(*) または CTRL-ALT-DEL(ete) など、キーボード言語によって異なります。

于 2014-06-17T07:56:18.320 に答える