我正在尝试编写Windows服务。它安装正常,但在运行时出现以下异常时失败。我搜索了字符串“MyNewProgramService”,但我找不到任何会引发此错误的转换。我还使用自定义异常处理将try / catch块添加到一堆代码中,而没有找到发生此异常的位置。我在想它是自动生成的配置/设置代码中的某个地方。有什么想法吗?
Event Type: Error
Event Source: MyNewProgram Event
Category: None Event
ID: 0
Date: 4/15/2010
Time: 12:48:34 PM
User: N/A
Computer: 20F7KF1
Description: Service cannot be started. System.InvalidCastException:
Conversion from string "MyNewProgramService" to type 'Integer' is not valid. --->
System.FormatException: Input string was not in a correct format.
at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value,
NumberFormatInfo NumberFormat)
at Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
--- End of inner exception stack trace ---
at Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)
at TaskManagerFailureHandlerService.MyNewProgramService.OnStart(String[] args)
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)
答案 0 :(得分:3)
它落在方法MyNewProgramService.OnStart
中,在某处调用Conversions.ToInteger
。只需在方法中搜索它。然后检查参数。它可能来自配置或其他东西,这就是为什么你没有在文本中看到字符串。
答案 1 :(得分:0)
检查配置文件。
您还可以检查服务正在运行的帐户。就像测试一样,进入服务列表中的登录选项卡,并使用自己的帐户登录。如果问题消失,那就是权限问题。