Oracle 似乎做了一些不应该做的事情(恕我直言):)
我有来自 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 个字符。
当构造函数拒绝无效但已成功安装的服务时,使用 ServiceController 类变得非常困难。-__-
我的快速解决方法是,因为我明天必须发送代码,所以我将任何服务名称截断为 80 个字符,并将其称为“Hail Mary Fix”。
你们有没有找到更好的解决方法?我无法控制 Windows 在该领域的松散程度,以及服务开发人员 (Oracle) 不遵守服务短名称的 80 字符限制。
帮帮我,欧比旺!;)