簡體   English   中英

Windows服務啟動失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM