5

単純なWindowsサービスプロジェクトがあります。カスタムアクションの追加を含め、 http://msdn.microsoft.com/en-us/library/zt39148a.aspxにある手順に従いました。

セットアッププロジェクトのリリースモードでビルドを実行する場合。サービスを実行したいサーバーで.msiを実行します。Services Managerを開くと、サービスが表示されます。手動でサービスを開始することもでき、必要なとおりに実行されます。

ただし、このサービスを5分ごとに実行したいので、タスクスケジューラでタスクを設定し、Windowsサービスの.exeでタスクを指定します。ただし、タスクスケジューラがWindowsサービスを実行すると、次のエラーが発生します。

サービスを開始できません。サービスプロセスがサービスコントローラに接続できませんでした

私はこれについて多くの研究をしましたが、何も思いつきませんでした。誰かがこれを引き起こしているかもしれないものについて何か考えを持っていますか?

4

2 に答える 2

2

OK、それはうまくいきません。タスクスケジューラのようにサービスのexeを直接実行することはできません。「ネットスタート」コマンドを使用してサービスを開始する必要があります。

Windows Vista以降を使用している場合は、UACを回避するために、スケジュールされたタスクの[最高の特権で実行する]チェックボックスを必ずオンにしてください。

于 2012-05-02T18:02:26.353 に答える
1

私の答えはコメントで適切にフォーマットされていなかったので、彼らがこれに遭遇した場合に備えてみんなに知らせたかったのです。基本的に、.batファイルを作成し、その.batファイル内に次の2行を配置します。

NET START MyServiceName
NET STOP MyServiceName

NET STOPコマンドは同期しており、サービスが完了するのを待ってからサービスを停止します。

助けてくれてありがとう!

于 2012-05-03T13:22:35.610 に答える