C# で記述され、installUtil.exe ユーティリティを使用してマシンにインストールされた Windows サービスがあります。インストールが正常に完了したら、サービスを開始しようとしています。ただし、1053エラーが発生します。
本当に奇妙なことは、構成ファイルを削除すると、サービスが正常に開始されることです (ただし、構成ファイルがないため、予想される null ポインター例外のためにサービスが停止します)。
これに関する洞察はありますか?ここで途方に暮れています。同じマシンに別のサービスをインストールしましたが、正常に動作します。
注: OS は Windows 7 Home Premium x64 です。
編集 =======
明確にするために、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>