オラクルは、あり得ないことをしたようです(IMHO):)
私は Oracle からサービスを受けています (私を撃たないでください。私はただの開発者です!)
名前 = "Oracle Enterprise Pack for Eclipse NodeManager (C_Oracle_Middleware_Home_wlserver_12.1)"
全87文字。System.ServiceProcess.ServiceController.get_ServicesDependedOn() 呼び出しを使用して依存するサービスを特定しようとすると、例外が発生します。
「サービス名 Oracle Enterprise Pack for Eclipse NodeManager (C_Oracle_Middleware_Home_wlserver_12.1) に無効な文字が含まれているか、空であるか、長すぎます (最大長 = 80)」
この名前は、サービスのレジストリ キーの名前でもあります。私の理解では、このプロパティ (Win32_Service クラスの名前) は 80 文字に制限されているはずです。
コンストラクターが無効であるが正常にインストールされたサービスをbarfsすると、 ServiceController クラスの使用が非常に難しくなります。-__-
明日コードを出荷しなければならないので、私の簡単な修正は、サービス名を切り詰めて 80 文字にし、それを「Hail Mary Fix」と呼ぶことです。
これを回避するより良い方法を見つけた人はいますか?Windows がこの分野でどのように緩んでいるかを制御することはできず、サービス開発者 (Oracle) はサービスの短い名前の 80 文字の制限を順守していません。
助けて、オビワン!;)