最近、Windows サービスとして実行されるいくつかのアプリケーションを継承しましたが、両方で GUI (システム トレイのコンテキスト メニューからアクセス可能) を提供するのに問題があります。
Windows サービスの GUI が必要な理由は、停止/再起動に頼らずに Windows サービスの動作を再構成できるようにするためです。
私のコードはデバッグモードで正常に動作し、コンテキストメニューが表示され、すべてが正しく動作するなど.
名前付きアカウント (つまり、ローカル システム アカウントではない) を使用して「installutil」経由でサービスをインストールすると、サービスは正常に動作しますが、システム トレイにアイコンが表示されません (これは正常な動作です。 「デスクトップと対話する」オプションがあります)。
ただし、ここに問題があります-「LocalSystemAccount」オプションを選択し、「デスクトップと対話する」オプションをチェックすると、明らかな理由もなくサービスの起動にAGESがかかり、取得し続けます
ローカル コンピュータで ... サービスを開始できませんでした。
エラー 1053: サービスは開始または制御要求にタイムリーに応答しませんでした。
ちなみに、Windows サービスのタイムアウトをデフォルトの 30 秒から 2 分にレジストリ ハック ( http://support.microsoft.com/kb/824344を参照、セクション 3 で TimeoutPeriod を検索) で増やしましたが、サービスはまだ起動します。タイムアウトします。
私の最初の質問は、サービスが非 LocalSystemAccount でログインする場合よりも「ローカル システム アカウント」のログインに時間がかかり、Windows サービスのタイムアウトが発生するのはなぜですか? 起動時にこのような異なる動作を引き起こすこれら2つの違いは何ですか?
第二に、一歩下がって、私が達成しようとしているのは、構成用のGUIを提供するWindowsサービスだけです-非ローカルシステムアカウント(名前付きのユーザー/ pwdを使用)を使用して実行できれば幸いです。サービスをデスクトップと対話させることができれば (つまり、システム トレイからコンテキスト メニューを利用できるようにする)。これは可能ですか?
上記の質問へのポインタをいただければ幸いです。