无法获取Windows服务的“StartMode”。 VB.NET

时间:2012-12-20 18:21:28

标签: vb.net windows-services comexception

我想知道服务启动模式是否设置为“自动”,如果是,则将其设置为“手动”

我有这段代码:

        If objService("StartMode").ToString = "Automatic" Then
            objService.ChangeStartMode("Manual")
        End If

但是当我编译我的项目时,Visual Studio会报告错误:

COMException未处理:未找到成员。 (HRESULT异常:0x80020003(DISP_E_MEMBERNOTFOUND))

If objService("StartMode").ToString = "Automatic" Then

中的

请帮我解决这个问题?这对我来说非常重要。感谢。

我在管理员帐户上使用Visual Studio 2008,VB.NET,Windows XP Sp3。

1 个答案:

答案 0 :(得分:0)

    If objService("StartMode").ToString = "Automatic" Then

您正在使用后期绑定,这是一种使用COM对象的方法,当您错误地使用其属性和方法时,这些对象往往会使您遇到运行时错误。您可以通过使用System.Management命名空间中的类来避免这些问题。

该语句没有按照您的想法执行,它调用接口的默认属性,并将“StartMode”作为参数传递给该默认属性的属性getter。这不是对该接口的正确使用,StartMode本身就是一个属性,它不是默认属性。修正:

    If objService.StartMode = "Automatic" Then