2

独自の実行可能ファイルを使用して、Windows でサービスを作成しようとしています。サービスを開始しようとすると、次のエラー メッセージが表示されます。

「ローカル コンピューターのサービスが開始され、その後停止しました。実行する作業がない場合、一部のサービスは自動的に停止します...」

exe は、時間をチェックし、1 日の特定の時点でデータベースのバックアップを作成するタイマーを常に実行しているため、常に作業を行っている必要があります。実行可能ファイルを(サービスとしてではなく)単独でテストしましたが、正常に動作します。

バッチ ファイルと INSTSRV.EXE および SRVANY.EXE を使用してサービスを作成しました。バッチ ファイルは次のようになります。

start /d "C:\<exe directory>" INSTSRV.EXE <service name> "C:\<exe
directory>\SRVANY.EXE"

コンピューターのサービスのリストにサーバー名が表示されるようになりました。また、レジストリを編集して、すべてが正常であることを確認しました。私のregeditエントリは次のようになります。

    Service key

DisplayName     REG_SZ          <service name>
ErrorControl    REG_DWORD       0
ImagePath       REG_EXPAND_SZ   "C:\<exe directory>\SRVANY.EXE" <service name> C:\<exe directory>\SRVANY.EXE
ObjectName      REG_SZ          LocalSystem
Start           REG_DWORD       2
Type            REG_DWORD       16

    Parameters key

AppDirectory    REG_SZ  E:\<exe directory>\
Application     REG_SZ  E:\<exe directory>\<exe file name>

以前に同様のバッチ ファイルを使用して実行可能ファイルからサービスを作成し、そのサービスのレジストリ エントリを自分のサービスのレジストリ エントリと比較しました。それらはかなり同一です。サービスを開始したくない理由がわかりません。

4

2 に答える 2

4

ImagePath の値が正しくないようです。これには、Srvany 実行可能ファイルへのフル パスのみが含まれている必要があります。

実際、「C:\Apps\Win2K3RK」に Srvany と Instsrv があり、次を実行すると:

C:\Apps\Win2K3RK\Instsrv.exe MyService C:\Apps\Win2K3RK\srvany.exe

作成されたレジストリ キーは次のようになります。

ここに画像の説明を入力

于 2014-05-01T14:43:34.190 に答える
1

アプリケーション キー パスの実行可能ファイルの名前が間違っています。おっと!困った人ごめんなさい。

于 2014-05-01T22:33:18.060 に答える