サービス開始時にMain()メソッドが呼び出されるのはなぜですか?

トビア

1つのメインクラスを持つアプリケーションがあります。これはServiceBaseメソッドをオーバーライドし、Main()静的メソッドを持っています。コマンドラインから呼び出される場合はMain()メソッドを使用し、Windowsサービス管理から呼び出される場合はOnStart()/ OnStop()を使用したいと思います。

このアプリをinstallutilsを使用してサービスとして正常にインストールしましたが、起動すると、期待どおりにOnStart()ではなくMain()メソッドが呼び出されます。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Xml.Serialization;
using System.Runtime.Serialization.Json;
using System.Threading;
using System.ServiceProcess;
using System.Configuration.Install;
using System.Reflection;

namespace Test
{

    class Program : ServiceBase
    {

        static void Main(string[] args)
        {  
            log.Error("Run as App");
        }


        protected override void OnStart(string[] args)
        {
            log.Info("Starting service");
        }

        protected override void OnStop()
        {
            log.Info("Stopping service");
        }
    }


}
Damien_The_Unbeliever

Windowsサービスには有罪の秘密があります。彼らは、昔ながらのコンソールアプリケーションとして生活を始めます。サービスに変換されるのは、実行を開始してサービスコントロールマネージャーに登録した後です。

そのため、はい、それMainが最初に呼び出されるエントリポイントであるのは正しいです。その時点では、それは単なるコンソールアプリだからです。

サービスがサービスコントロールマネージャーに登録されてサービスになる方法ServiceBase.Run()は、Mainメソッド(またはそれが呼び出すメソッド)から呼び出すことによって処理されます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このメソッド/ゲッターがAngular2サービスでX回呼び出されるのはなぜですか

分類Dev

symfonyサービスはメソッド呼び出し後にのみ開始されます

分類Dev

インテントサービスが開始するとすぐにonDestroy()が呼び出されるのはなぜですか?

分類Dev

Firebaseサインインが成功する前に、別のアクティビティのメソッドが呼び出されるのはなぜですか?

分類Dev

モックメソッドの実行時にmockitoが呼び出されないのはなぜですか?

分類Dev

他のメソッドで呼び出されるクラスメソッドが「self」で呼び出される必要があるのはなぜですか?

分類Dev

AppKit のメイン ビューの draw メソッドの後に applicationDidFinishLaunching が呼び出されるのはなぜですか

分類Dev

スーパークラスで宣言された静的メソッドがサブクラスで呼び出されたときに、サブクラスの静的初期化子が呼び出されないのはなぜですか?

分類Dev

このメソッドが呼び出されずに実行されるのはなぜですか?

分類Dev

カスタムCALayerのdrawメソッドが以前に呼び出されないのはなぜですか?

分類Dev

基本クラスからメソッドを呼び出すと子メソッドが呼び出されるのはなぜですか?

分類Dev

Javaで作成するitextpdf:ローカルホストからサービス呼び出しが行われると中国語は機能しませんが、mainメソッドから呼び出されると正常に機能します

分類Dev

start()を呼び出した後、スレッドのコンストラクターがrun()メソッドに転送されるコントロールではなくmain()に戻るのはなぜですか?

分類Dev

親クラスのメソッドが呼び出されるのはなぜですか?

分類Dev

startActivityForResultの後にoncreateメソッドが呼び出されるのはなぜですか?

分類Dev

Javaのinvokevirtualが呼び出されたメソッドのコンパイル時クラスを解決する必要があるのはなぜですか?

分類Dev

タブが変更されるたびにTabBarViewの各ページのinitStateメソッドが呼び出されるのはなぜですか

分類Dev

オブザーバーメソッドが2回呼び出されるのはなぜですか?

分類Dev

ViewdispatchKeyEventメソッドが呼び出されないのはなぜですか?

分類Dev

javascriptメソッドが呼び出されないのはなぜですか?

分類Dev

$ getメソッドが呼び出されないのはなぜですか?

分類Dev

$ getメソッドが呼び出されないのはなぜですか?

分類Dev

メソッドが呼び出されないのはなぜですか?

分類Dev

インストール時にサービスが開始されないのはなぜですか?

分類Dev

インストール時にサービスが開始されないのはなぜですか?

分類Dev

Kerasサブクラス化APIで、callメソッドが呼び出されず、代わりに、このクラスのオブジェクトを呼び出すことによって入力が渡されるのはなぜですか?

分類Dev

Ec2サービスを開始または停止するたびにIPアドレスが変更されるのはなぜですか?

分類Dev

定義されたサービスメソッドは呼び出されず、代わりに実際のサービスが呼び出されます

分類Dev

有効なsystemdサービスが起動時に開始されないのはなぜですか?

Related 関連記事

  1. 1

    このメソッド/ゲッターがAngular2サービスでX回呼び出されるのはなぜですか

  2. 2

    symfonyサービスはメソッド呼び出し後にのみ開始されます

  3. 3

    インテントサービスが開始するとすぐにonDestroy()が呼び出されるのはなぜですか?

  4. 4

    Firebaseサインインが成功する前に、別のアクティビティのメソッドが呼び出されるのはなぜですか?

  5. 5

    モックメソッドの実行時にmockitoが呼び出されないのはなぜですか?

  6. 6

    他のメソッドで呼び出されるクラスメソッドが「self」で呼び出される必要があるのはなぜですか?

  7. 7

    AppKit のメイン ビューの draw メソッドの後に applicationDidFinishLaunching が呼び出されるのはなぜですか

  8. 8

    スーパークラスで宣言された静的メソッドがサブクラスで呼び出されたときに、サブクラスの静的初期化子が呼び出されないのはなぜですか?

  9. 9

    このメソッドが呼び出されずに実行されるのはなぜですか?

  10. 10

    カスタムCALayerのdrawメソッドが以前に呼び出されないのはなぜですか?

  11. 11

    基本クラスからメソッドを呼び出すと子メソッドが呼び出されるのはなぜですか?

  12. 12

    Javaで作成するitextpdf:ローカルホストからサービス呼び出しが行われると中国語は機能しませんが、mainメソッドから呼び出されると正常に機能します

  13. 13

    start()を呼び出した後、スレッドのコンストラクターがrun()メソッドに転送されるコントロールではなくmain()に戻るのはなぜですか?

  14. 14

    親クラスのメソッドが呼び出されるのはなぜですか?

  15. 15

    startActivityForResultの後にoncreateメソッドが呼び出されるのはなぜですか?

  16. 16

    Javaのinvokevirtualが呼び出されたメソッドのコンパイル時クラスを解決する必要があるのはなぜですか?

  17. 17

    タブが変更されるたびにTabBarViewの各ページのinitStateメソッドが呼び出されるのはなぜですか

  18. 18

    オブザーバーメソッドが2回呼び出されるのはなぜですか?

  19. 19

    ViewdispatchKeyEventメソッドが呼び出されないのはなぜですか?

  20. 20

    javascriptメソッドが呼び出されないのはなぜですか?

  21. 21

    $ getメソッドが呼び出されないのはなぜですか?

  22. 22

    $ getメソッドが呼び出されないのはなぜですか?

  23. 23

    メソッドが呼び出されないのはなぜですか?

  24. 24

    インストール時にサービスが開始されないのはなぜですか?

  25. 25

    インストール時にサービスが開始されないのはなぜですか?

  26. 26

    Kerasサブクラス化APIで、callメソッドが呼び出されず、代わりに、このクラスのオブジェクトを呼び出すことによって入力が渡されるのはなぜですか?

  27. 27

    Ec2サービスを開始または停止するたびにIPアドレスが変更されるのはなぜですか?

  28. 28

    定義されたサービスメソッドは呼び出されず、代わりに実際のサービスが呼び出されます

  29. 29

    有効なsystemdサービスが起動時に開始されないのはなぜですか?

ホットタグ

アーカイブ