Windowsサービスを作成し、サーバーにインストールしました。それはうまく機能するように見えます。つまり、意図したとおりに動作します。しかし、リモートデスクトップ経由でサーバーにログオンすると、次のメッセージが表示されます。
コマンドラインまたはデバッガからサービスを開始できません。 Windowsサービスを最初にインストールし(installutil.exeを使用)、次にServerExplorer、Windowsサービス管理ツール、またはNET STARTコマンドで開始する必要があります。
クリックして、サービスエクスプローラーに移動してサービスを確認します。エラーは報告されていません。
これをインストールしたので、ローカルシステムを「ログオン」として使用します。
ありがとう。
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サービスとして実行できます。