windowsサービス開始エラーに対処する

こんにちは。windowsサービス開始エラーが出たときにはどう対処すればよいのでしょう。


コマンドラインやデバッガーからwindows サービスを開始できません。最初にinstallutil.exeを実行してwindowsサービスをインストールし、serverexplorer、windows services administrativeツール、またはnet startコマンドを使用してください。 

サービスをデータ実行防止(dep)から除外する

エクスプローラから、「pc」のプロパティ→システムの詳細設定→詳細設定と進みます。

 パフォーマンスの「設定」ボタンをクリックして、 「データ実行防止」のタブを選択します。


「次に選択するのものを除くすべてのプログラムおよびサービスについてdepを有効にする」の「追加」から、起動しないサービスの実行ファイルを指定します。
(つまり、選択したプログラムはdep(データ実行防止)から除外する)

editbin.exe

それでもうまくいかないことがあります。

このプログラムは、データ実行防止(dep)を有効にして実行する必要があります。このプログラムではdepを無効にすることはできません。 


これは実行ファイルにあるnxcompatというフラグによって判断されています。
visual studio に同梱されているコマンド editbin.exe を使うとnxcompatフラグを取り除くことができます。それによりdepから除外できるようになります。

editbin.exeは「microsoft coff binary file editor」で、coff(common object file format)形式のバイナリファイルの内容を変更するためのツールです。

コンパイル済みの実行可能ファイルやオブジェクトファイル、dllを修正することができます。