从我们的服务器收到 运行 时收到 NLog 错误,但本地 运行 没问题
Receiving an NLog error when running from our server, yet running locally is fine
我在我们的一个较旧的 .net windows 表单应用程序中遇到了一个涉及 NLog (ver2.1.0.0) 的奇怪错误。
我对应用程序进行了更改,并且能够 运行 并成功测试更改,没有任何问题。当我们将它上传到我们的 QA 服务器(Windows Server 2008,我相信)时,我们收到以下错误:
为 nlog 创建配置部分处理程序时发生错误:从 .exe.Config 第 58 行加载配置时发生异常
奇怪的是,我似乎无法弄清楚为什么会这样。这是我的 nLog app.config 代码。第 58 行是第一行,以 < nlog xmlns...
开头
<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="<?xml version="1.0" ?><data xmlns:log4j="http://jakarta.apache.org/log4j/" xmlns:nlog="http://nlog-project.org/">${log4jxmlevent:includeSourceInfo=true:includeCallSite=true:includeMdc=true:includeNdc=true}</data>" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" maxLevel="Fatal" writeTo="database" />
<logger name="*" minlevel="Error" maxLevel="Fatal" writeTo="mail" />
</rules>
知道是什么原因造成的吗?
谢谢
所以,我至少能够弄清楚潜在的问题,所以我想我会 post 在这里,以防其他人遇到这个问题。
我遇到了一个单独的基础错误,在我的例子中是一个无效的网络服务证书。该错误已被 nlog 捕获,但由于我仍然无法弄清楚的原因,nlog 也引发了错误。无论如何,所以我在我的配置文件中将 nlog "throwExceptions" 设置为 false 并重新 运行 我的应用程序。这样做让我发现了错误的真正根本原因,在我的例子中是 "There is a problem with the certificate. Connection to https://mywebservice.com/mywebservicename is forbidden"
谢谢
我在我们的一个较旧的 .net windows 表单应用程序中遇到了一个涉及 NLog (ver2.1.0.0) 的奇怪错误。
我对应用程序进行了更改,并且能够 运行 并成功测试更改,没有任何问题。当我们将它上传到我们的 QA 服务器(Windows Server 2008,我相信)时,我们收到以下错误: 为 nlog 创建配置部分处理程序时发生错误:从 .exe.Config 第 58 行加载配置时发生异常
奇怪的是,我似乎无法弄清楚为什么会这样。这是我的 nLog app.config 代码。第 58 行是第一行,以 < nlog xmlns...
开头<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="<?xml version="1.0" ?><data xmlns:log4j="http://jakarta.apache.org/log4j/" xmlns:nlog="http://nlog-project.org/">${log4jxmlevent:includeSourceInfo=true:includeCallSite=true:includeMdc=true:includeNdc=true}</data>" />
</target>
</targets>
<rules>
<logger name="*" minlevel="Trace" maxLevel="Fatal" writeTo="database" />
<logger name="*" minlevel="Error" maxLevel="Fatal" writeTo="mail" />
</rules>
知道是什么原因造成的吗?
谢谢
所以,我至少能够弄清楚潜在的问题,所以我想我会 post 在这里,以防其他人遇到这个问题。
我遇到了一个单独的基础错误,在我的例子中是一个无效的网络服务证书。该错误已被 nlog 捕获,但由于我仍然无法弄清楚的原因,nlog 也引发了错误。无论如何,所以我在我的配置文件中将 nlog "throwExceptions" 设置为 false 并重新 运行 我的应用程序。这样做让我发现了错误的真正根本原因,在我的例子中是 "There is a problem with the certificate. Connection to https://mywebservice.com/mywebservicename is forbidden"
谢谢