(1) WindowsServerのエラー14001「サービスを開始できませんでした~」の原因と対処
(1-1) エラーメッセージ&発生状況
(1-2) イベントログのエラー内容
(1-3) 原因
(1-4) 対処
(1) WindowsServerのエラー14001「サービスを開始できませんでした~」の原因と対処
Windowsサーバにて表題のメッセージが発生した際の原因・対処の経緯を備忘のため記録します。
(1-1) エラーメッセージ&発生状況
(1-1) エラーメッセージ
(図111)
ローカルコンピュータの[サービス名]サービスを開始できませんでした。 エラー 14001:このアプリケーションのサイドバイサイド構成が正しくないため、アプリケーションを開始できませんでした。詳細については、アプリケーションのイベントログを参照するか、コマンドラインツールsxstrace.exeを使用してください。
(1-2) 発生状況
「サービス」から特定のサービスを再起動した際に、上記のエラーメッセージが出てサービスの起動に失敗しました。
(1-2) イベントログのエラー内容
Windowsのイベントログを見ると次の内容が出力されていました。
"xxx.exe"のアクティブ化コンテキストの生成に失敗しました。マニフェストまたはポリシーファイル"[設定ファイル(xxx.exe.config)名など]"行xxxのエラーです。無効なXML構文です。
(その他情報)
ログの名前=Application |
イベントID=59 |
Qualifiers=49409 |
ソース=SideBySide |
レベル=エラー |
ユーザー=N/A |
キーワード=クラシック |
(1-3) 原因
■直接原因
直接原因としては、イベントログにも書かれている通り、設定ファイル「xxx.exe.config」のxxx行目でエラーが起きておりました。
実際にconfigファイルを見てみると非常に単純なミスですが、XMLのタグでダブルクォーテーション「”」が漏れている事が原因でした。
(1-4) 対策
(1-5) 用語:SideBySideについて
エラーのソース「SideBySide」について、Microsoftの.NETフレームワークにて導入された概念で、あるアプリやコンポーネントについて、同一マシンにて複数のバージョンを起動させる事ができる技術のようです(複数のバージョンを導入しても、相互に悪影響しないように保護する)。
XP以前などの古いバージョンでは、DLLの競合などが発生して問題になったのを解消できるようになったのが当技術との事ですが、今回のメッセージとの関連性はイマイチ掴めていません・・