2010-12-03 11 views
13

Main()メソッドがサービスコントロールマネージャーに関連してWindowsサービスでどのくらい正確に機能しているか不思議です。それはいつ実行されますか?どのようにOSにフックするのですか?サービスがインストールされているときに実行されますか?私はそれがOnStart()がSCMによって呼び出されたときに実行されることを知っています、OnStop()は既に実行しているので、再度実行しません。C#Windowsサービスのメインメソッド

誰もがこの分野について多くのことを知っていて、私がそれを理解することができます。

私はexpeirencedプログラマーです、私はMain Methodが一般的に何をしているのかについての説明は必要ありません... Windowsサービスと一緒にどのように機能するかだけです。

+0

mainメソッドはコンパイラに対してのみ「main」であることを知っておく必要があります。これは、Windowsサービスの開始とは関係ありません。 –

答えて

13

コントロールパネルアプレットを使用してサービスを開始するように指示すると、SCMはプロセスを起動します。これにより、Main()内のコードが実行されます。 Main()メソッドのServiceBase.Run()行は、関連付けられているサービスをSCMにフックし、SCMはServiceBase.Run()メソッド呼び出しで指定された各サービスのOnStart()メソッドを呼び出します。

+1

Main()が例外をスローするとどうなりますか?コントロールパネルのアプレットは何か問題が起こったことをユーザーに通知しますか? – PaulK

関連する問題