NLog 4.1.2 вылетает в конструкторе - PullRequest
0 голосов
/ 05 октября 2018

У меня есть программа, которая работала в этот понедельник (2018-10-01), но начала сбой в среду (во вторник она не использовалась).

Программа у клиента и в форме выпуска, поэтому я не могу ее отладить!Заказчик говорит, что «ничего не изменилось», и все файлы в моей программе такие же, как и раньше.

Это программа C # Winforms, и я с помощью средства просмотра событий обнаружил, что сбой происходит при запуске NLog (в ctor).

Я пытался использовать внутреннее ведение журнала, но файл журнала не создавался.

Есть какие-либо идеи о том, в чем проблема и / или как я должен ее исправить?

Сообщение в приложении для просмотра событий:

DCMark Winform.exe Framework Версия: v4.0.30319 Описание: Процесс был прерван из-за необработанного исключения.Информация об исключении: System.Xml.XmlException в System.Xml.XmlTextReaderImpl.Throw (System.Exception) в System.Xml.XmlTextReaderImpl.Throw (System.String, System.String [])
в System.Xml.XmlTextReaderImpl.ParseText (Int32 ByRef, Int32 ByRef, Int32 ByRef) в System.Xml.XmlTextReaderImpl.ParseText () в System.Xml.XmlTextReaderImpl.ParseElementContent () в System.Xml.XmlTextReaderImpl.Xml (re) (at) ()) в System.Xml.XmlTextReaderImpl.Skip () в System.Xml.XmlTextReader.Skip () в System.Configuration.XmlUtil.StrictSkipToNextElement (System.Configuration.ExceptionAction) в System.Configuration.BaseConfigurationRecords.url., System.String, Boolean, System.String, System.Configuration.OverrideModeSetting, Boolean) в System.Configuration.BaseConfigurationRecord.ScanSectionsRecursive (System.Configuration.XmlUtil, System.String, Boolean, System.String, System.Configuration.OverrideModeSSBoolean) в System.Configuration.BaseConfigurationRecord.ScanSections (System.Configuration.XmlUtil) в System.Configuration.BaseConfigurationRecord.InitConfigFromFile ()

Сведения об исключении: System.Configuration.ConfigurationErrorsException
в System.Configuration.ConfigurationSrowle.Configuration.BaseConfigurationRecord.ThrowIfParseErrors (System.Configuration.ConfigurationSchemaErrors) в System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors ()
в System.Configuration.ClientConfigurationSystem.OnConf.

Информация об исключении: System.Configuration.ConfigurationErrorsException
в System.Configuration.ConfigurationManager.PrepareConfigSystem ()
в System.Configuration.ConfigurationManager.GetSection (System.String) в System.Configuration.ConfigurationManagerSting_ting_setApp System.Configuration.ConfigurationManager.в NLog.Common.InternalLogger.GetSettingString (System.String, System.String) в NLog.Common.InternalLogger.GetSetting [[System.Boolean, mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089]] (System.String, System.String, Boolean) в NLog.Common.InternalLogger..cctor ()

Информация об исключении: System.TypeInitializationException в DC.DCMark.Form1..ctor () в DC.DCMark.Program.Main ()

Файл NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog throwExceptions="true"
internalLogFile="C:/Temp/log.txt" internalLogLevel="Trace">
  <targets>
    <target xsi:type="File" name="f" fileName="${specialfolder:folder=CommonApplicationData}/Foo/Bar/Logs/Bar_${shortdate}.log"
            layout="${longdate} | ${uppercase:${level}} | ${callsite} | ${message} | ${exception:format=ToString}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="f" />
  </rules>
</nlog>

РЕДАКТИРОВАТЬ: Добавлен файл App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="DC.DCMark.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
    </startup>
    <userSettings>
        <DC.DCMark.Properties.Settings>
            <setting name="Location" serializeAs="String">
                <value>400, 100</value>
            </setting>
            <setting name="Size" serializeAs="String">
                <value>840, 900</value>
            </setting>
            <setting name="Maximised" serializeAs="String">
                <value>False</value>
            </setting>
            <setting name="Minimised" serializeAs="String">
                <value>False</value>
            </setting>
        </DC.DCMark.Properties.Settings>
    </userSettings>
</configuration>

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я нашел ошибку!

Я нашел это https://stackoverflow.com/a/16332304/1009355 В котором говорится, что существует копия app.config, созданная в% localappdata% \ companyname \ programname ...

Я удалил все каталоги, в которых было указано название программы.

Все снова работает !!

Спасибо за помощь, я бы не нашел решение без него!

0 голосов
/ 05 октября 2018

В вашем файле web.config / app.config есть ошибка XML

В NLog 4.4 исправлено, что NLog не падает на нем.(см. отчет об ошибке ), поэтому обновление будет исправлено.Обновление до последней версии, 4.5.10 рекомендуется.

...