我有一个使用C#编写的Windows服务,并使用installUtil.exe实用程序安装在我的机器上。安装成功完成后,我正在尝试启动该服务。但它给了我一个1053错误。Windows服务启动失败
现在真正奇怪的是,当我删除配置文件服务启动就好(虽然然后停止,因为空指针异常,这是预期的,因为没有配置文件)。
对此有何见解?我在这里损失了,我在同一台机器上安装了另一项服务,它工作得很好。
注意:操作系统是Windows 7中的OnStart()
方法家庭高级版64位
编辑=======
为了明确这一点,我试图登录(使用事件查看器)。当日志文件被删除时,我可以看到所有的日志条目和服务工作正常,直到它需要从配置文件中获取数据。
问题似乎是当配置文件仍然存在。 OnStart()
方法的第一行做了一个日志条目,但是,该程序没有达到这一点。
protected override void OnStart(string[] args)
{
try
{
this.EventLog.WriteEntry("Starting Focus Stock Service");
该日志条目被记录只在配置文件是不是
编辑2 ========================否则就不会达到这一点。
> <?xml version="1.0"?> <configuration> <appSettings>
> <add key="Directory" value="C:\Logs\FocusCommon"/>
> <add key="FileName" value="log"/>
> <add key="LogLevel" value="3"/>
> <add key="StockRemotingServerPort" value="10001"/>
> <add key="StockRemotingServerName" value="FocusStockServer"/>
> <add key="SQLServerConnStringTemplate" value="server=$server$;uid=$username$;pwd=$password$;database=$database$;MultipleActiveResultSets=True;Pooling=False;"/>
> <add key="AccountingSynchIntervalMinutes" value="1"/>
> <add key="LocalImageDirectory" value="C:\Focus360_Image_Dir"/>
> <add key="LocalBrandImageDirectory" value="C:\Focus360_Image_Dir\Brands"/>
> <add key="LocalAttachmentDirectory" value="C:\Focus360_Attachment_Dir"/>
> <add key="EmailServer" value="maltanet.net" />
> <add key="EmailPort" value="25" />
> <add key="EmailUserName" value="" />
> <add key="EmailPassword" value="" />
> <add key="EmailUseSSL" value="false" /> </appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FSS_SQLConnPool" publicKeyToken="40FEE7F833FAA042" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.4525.28539" newVersion="1.0.4525.28539"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
听起来好像在这两种情况下服务中都会抛出一些运行时异常。你有什么机会找出这些是什么?您可能需要向代码添加一些错误日志记录并重新部署以获取更多有用的信息。但在这方面,异常类型,异常消息和堆栈跟踪非常有用。 – David
是的,我使用事件查看器进行日志记录,但是在配置文件未被删除的情况下,它似乎没有调用OnStart()方法。删除配置文件后,我看到日志条目。 – Jonny
当配置文件被删除时,它停止了,但那是因为它没有找到配置文件。所以看起来配置文件是问题 – Jonny