独自Windowsサービス起動時、1053エラー発生


chappy

2010-05-14 19:48

C#+.NET Framework 2.0で独自開発したサービスプログラムにおいて、
下記の環境で1053エラーが発生します。
※サービスの登録・削除は、正常に行われる事は確認しました。

○Windows 2000 Server SP4+.NET Framework 2.0

「エラー 1053: そのサービスは指定時間内に開始要求または制御要求に応答しませんでした」
ちなみに、下記の環境では問題なく正常起動され、処理も正常に動作します。

○Windows 2003 Server R2+.NET Framework 2.0
○windows 2008 Server+.NET Framework 2.0

何が問題なのか皆目検討がつきません。
Windows 2000 Serverでは、C#で作成したサービスプログラムは動作させられないのでしょうか?
どなかたご教示願います。

コメント

2010-05-14 20:26

OnStartで重い処理を行っているとか。

http://msdn.microsoft.com/ja-jp/library/zt39148a(VS.80).aspx

OnStart メソッドは、サービスの操作が開始された直後にオペレーティング システムに戻る必要があります。永久的に続くループやブロックは実行できません。単純なポーリング機構を作成するには、System.Timers.Timer コンポーネントを使用できます


# 開始時の重い処理もTimerで行うのがよい。

2010-05-15 00:44

todoさん、コメントありがとうございます。
ご指摘のようにOnStart内の処理が重く認識されているのかと思い、全てコメントアウトして試してみたのですが、現象は変わりませんでした。
Windows XP/2003 Server/2008 Server では問題なく正常動作していますので、Windows 2000と.NETで作成したサービスプログラムの相性が悪い、もしくは何らかの環境に不備があるのではないかと思われます。
ネット上で情報を検索するも、この辺の情報はなかなかヒットしないので困っています。
もう少し、頑張って調査してみますが、客先から急がされているため、どこかで区切りをつけて、駄目なら通常EXEで再プログラミングします。

2010-05-15 01:23

Windows 2000 の時代は、Windows 2000 Server と Windows 2000 Professional との違いは単にサーバーとして使えるライセンスが付いているかどうか、そしてオプショナルなアプリケーションソフトウェアが付いているかどうか、といった非技術的な違いがほとんどだったような記憶があります。(要は Server と付いていてもいなくてもプログラムとしては同じもの。)

そして、http://support.microsoft.com/kb/816169/ などを見る限り、Windows 2000 でも .NET で作ったサービスは動くようなことは書いてありますので、Windows 2000 Server だからどうこうということはないだろうと私は考えます。

ほかにも「Windows サービス 1053」などのキーワードで検索してヒットする、
http://support.microsoft.com/kb/841713/ja
http://support.microsoft.com/kb/839174/ja
などにサービスのサンプルプログラムがありますが、これらも Windows 2000 Server では動かないのでしょうか?

私は、サービス関係だったら、アカウントの設定がなにか違っていることが多いかも、と推理します。今、どういうアカウントの設定で試されているのかは分かりませんが、いきなり、本番で使うアカウントの設定ではなく、セキュリティーを考えずに簡単なアカウントの設定で動かすことを試してみてはどうでしょうか。

2010-05-15 09:23

別のまっさらな、最新の SP & Windows Update を適用した Windows 2000 Server 環境(仮想マシンなど)でも、同じ現象が発生するでしょうか?

また、固有の実装をほとんど含まない、ほぼ雛形通りのサービスでも同じ現象が起きるでしょうか?

とりあえず、実行環境の問題なのか、はたまたソフトウェア側(.NET ランタイムなどのミドル層含めて)の問題なのか切り分けが必要と思います。

2010-05-15 18:27

> unibonさん

レスありがとうございます。
ご指摘のようにOnStartの処理に問題があるのでは?と思い、全てコメントにしてみましたが、現象は変わらずでした。

> ひどりさん

レスありがとうございます。
まっさらからインストールしたWindows 2000(SP4)でも現象は同じでした。
固有の実装を含まないサービスはまだ試していません。
時間ができた時に試してみようと思います。

とりあえず今は時間がないので、EXEでプログラムを再作成中です。