2015-07-20 2 views
1

Я делаю услугу, которая на данный момент пуста, и используется только NLog, но когда я запускаю службу, я получаю следующую ошибку;Исключение NLog при запуске службы

--------------------------- 
Services 
--------------------------- 
Windows could not start the JobService service on Local Computer. 

Error 1053: The service did not respond to the start or control request in a timely fashion. 

--------------------------- 
OK 
--------------------------- 

это трассировки стека в окне просмотра событий:

Application: service.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.Configuration.ConfigurationErrorsException 
Stack: 
    at System.Configuration.ClientConfigurationSystem.EnsureInit(System.String) 
    at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(System.String) 
    at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(System.String) 
    at System.Configuration.ConfigurationManager.GetSection(System.String) 
    at NLog.Config.XmlLoggingConfiguration.get_AppConfig() 
    at NLog.LogFactory.get_Configuration() 
    at NLog.LogFactory.GetLogger(LoggerCacheKey) 
    at NLog.LogFactory.GetLogger(System.String) 
    at NLog.LogManager.GetLogger(System.String) 
    at JobsService.Service1..ctor() 

NLog.config:

<?xml version="1.0" encoding="utf-8" ?> 
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd" 
     autoReload="true" 
     throwExceptions="false" 
     internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" > 

    <targets> 
    <target name="file" xsi:type="File" layout="${longdate} ${logger} ${message}" fileName="${basedir}/${shortdate}.log" /> 
    </targets> 

    <rules> 
    <logger name="*" minlevel="Debug" writeTo="file" /> 
    </rules> 
</nlog> 

App.config имеет следующую строку в configSections, но не знать, если это необходимо

<section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog"/> 

Подумайте, какую конфигурацию я мог пропустить или забыл?

+0

Если у вас есть ваш nlog config в отдельном файле, вам не нужны настройки в app.config. Просто удалите эту строку: '

' – nemesv

+0

@nemesv же результат – Kiwi

ответ

5

Я только что столкнулся с той же проблемой. Причина заключалась в том, что я установил соединительные строки поверх конфигурации в App.Config. Возврат App.Config для начала с configSections исправил его. Мне не нужен раздел nlog-раздела.

Таким образом:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <configSections> 
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/> 
    </configSections> 
    <connectionStrings> 
    <add ... /> 
    </connectionStrings> 
    <!-- etcetera --> 
</configuration> 

Не знаю, почему это происходит.

Примечание. Я использую последний NLOG (v4) из NuGet в службе Windows.

+0

Благодарим за решение! Это тоже помогло мне. –

+1

Большое спасибо !!! Это странно, но работает :) –

+0

Как сказано выше, странно! Но работает. – jeromeyers

Смежные вопросы