[英]Windows Service Starting Failure
我有一個用C#編寫的Windows服務,並使用installUtil.exe實用程序安裝在我的計算機上。 安裝成功完成后,我正在嘗試啟動服務。 但是,這給了我1053錯誤。
現在真正的怪異之處是,當我刪除Config文件時,該服務就可以正常啟動(盡管隨后它會由於空指針Exception而停止,因為沒有配置文件,這是可以預期的)。
有什么見解嗎? 我在這里茫然不知所措,我在同一台機器上安裝了另一台服務,效果很好。
注意:操作系統為Windows 7 Home Premium x64
編輯=======
為了清楚OnStart()
,我嘗試在OnStart()
方法中記錄(使用事件查看器)。 刪除日志文件后,我可以看到所有日志條目,並且該服務可以正常運行,直到需要從配置文件中獲取數據為止。
問題似乎是當配置文件仍然存在時。 OnStart()
方法的第一行進行了日志輸入,但是,程序尚未到達此點。
編輯2 ========================
protected override void OnStart(string[] args)
{
try
{
this.EventLog.WriteEntry("Starting Focus Stock Service");
僅當配置文件不存在時才記錄此日志條目,否則將無法進行此操作。
> <?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>
這是啟動服務時可能出錯的一件事,但它通常會崩潰。 您的OnStart()方法有30秒的時間完成作業並返回。 如果花費的時間更長,則服務控制管理器會認為有嚴重的錯誤,停止等待服務啟動,並產生錯誤1053,“服務未及時響應啟動或控制請求”。
您可以通過調用RequestAdditionalTime()來請求其他時間。 但是有些奇怪的是,您的OnStart()代碼基本上有問題,30秒鍾是啟動服務的時間很長。 通過改進代碼中的日志記錄來提高診斷此問題的幾率,這樣您就可以知道問題所在。
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
好的,這似乎是問題所在。 我不完全確定為什么這會阻止它在我的計算機上啟動。 (是的,我在另外兩台機器上嘗試過,並且服務開始正常!!)
無論如何,我刪除了這一行,該服務也在我的機器上啟動。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.