Получение ошибки NLog при запуске с нашего сервера, но при этом локально работает - PullRequest
0 голосов
/ 27 сентября 2018

Я обнаружил странную ошибку, связанную с NLog (ver2.1.0.0) в одном из наших старых приложений .net windows form.

Я внес изменение в приложение и смог успешно запустить и протестировать изменение без проблем.Когда мы загрузили его на наш сервер QA (я полагаю, в Windows Server 2008), мы получаем следующую ошибку: Произошла ошибка при создании обработчика раздела конфигурации для nlog: возникла исключительная ситуация при загрузке конфигурации из строки .exe.Config 58

Как ни странно, я не могу понять, почему это происходит.Вот мой код app.config для nLog.Строка 58 - первая строка, начинающаяся с

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      throwExceptions="true" internalLogFile="c:\temp\nlog.txt" internalLogLevel="Debug">
<variable name="applicationName" value="Load Import"/>
<targets>
  <target name="console" type="Console" layout="${date:format=HH\:mm\:ss} ${logger} ${level} ${message}${onexception:${newline}Exception\:${newline}${exception:format=tostring}}" />
  <target name="mail" xsi:type="Mail" smtpServer="relay.ourcompany.com" from="" to="" addNewLines="true" subject="ImportBill - ${level} ${onexception: Exception}" layout="Date: ${longdate}${newline}Level: ${uppercase:${level}}${newline}Logger: ${logger}${newline}Machine: ${machinename}${newline}Message: ${message}${onexception:${newline}Exception\:${newline}${exception:format=tostring}}${newline}" />
  <target name="database" xsi:type="Database" connectionStringName="Logging" keepConnection="true">
 <commandText>
    exec [nlog].[Message_Add]
    @LogDate = @logDate,
    @MachineName = @machineName,
    @ProcessName = @processName,
    @Version = @assemblyVersion,
    @Logger = @logger,
    @LogLevel = @logLevel,
    @Origin = @callSite,
    @Message = @message,
    @Exception = @exception,
    @StackTrace = @stackTrace,
    @WindowsIdentity = @windowsIdentity,
    @BaseDirectory = @baseDirectory,
    @AdditionalInfo = @additionalInfo,
    @RequestIdentifier = @requestIdentifier,
    @Log4JEvent = @log4jEvent
  </commandText>
  <parameter name="@logDate" layout="${date:format=yyyy-MM-dd HH\:mm\:ss.fff}" />
  <parameter name="@machineName" layout="${machinename}" />
  <parameter name="@ProcessName" layout="${processname}" />
  <parameter name="@assemblyVersion" layout="${assembly-version}" />
  <parameter name="@logger" layout="${logger}" />
  <parameter name="@logLevel" layout="${level}" />
  <parameter name="@callSite" layout="${callsite}" />
  <parameter name="@message" layout="${message}" />
  <parameter name="@exception" layout="${exception:format=tostring}" />
  <parameter name="@stackTrace" layout="${stacktrace}" />
  <parameter name="@windowsIdentity" layout="${windows-identity}" />
  <parameter name="@baseDirectory" layout="${basedir}" />
  <parameter name="@additionalInfo" layout="${mdc:item=AdditionalInfo}" />
  <parameter name="@requestIdentifier" layout="" />
  <parameter name="@log4jEvent" layout="&lt;?xml version=&quot;1.0&quot; ?&gt;&lt;data xmlns:log4j=&quot;http://jakarta.apache.org/log4j/&quot; xmlns:nlog=&quot;http://nlog-project.org/&quot;&gt;${log4jxmlevent:includeSourceInfo=true:includeCallSite=true:includeMdc=true:includeNdc=true}&lt;/data&gt;" />
  </target>
</targets>
<rules>
  <logger name="*" minlevel="Trace" maxLevel="Fatal" writeTo="database" />
  <logger name="*" minlevel="Error" maxLevel="Fatal" writeTo="mail" />
</rules>

Есть идеи, что может быть причиной этого?

Спасибо

1 Ответ

0 голосов
/ 28 сентября 2018

Итак, я смог по крайней мере выяснить основную проблему, поэтому решил, что я опубликую ее здесь на случай, если кто-нибудь еще столкнется с этой проблемой.

Я столкнулся с отдельной основной ошибкой, котораяв моем случае был недействительный сертификат веб-службы.Ошибка была обнаружена nlog, но по причине, которую я до сих пор не могу понять, nlog также выдавал ошибку.В любом случае, поэтому я установил nlog «throwExceptions» в моем конфигурационном файле равным false и перезапустил мое приложение.Это позволило мне обнаружить истинную причину моей ошибки, которая в моем случае была «Есть проблема с сертификатом. Соединение с https://mywebservice.com/mywebservicename запрещено»

Спасибо

...