c# - 从我们的服务器运行时收到 NLog 错误,但在本地运行很好
问题描述
我在我们的一个较旧的 .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>
知道可能是什么原因造成的吗?
谢谢
解决方案
所以,我至少能够找出根本问题,所以我想我会把它贴在这里,以防其他人遇到这个问题。
我遇到了一个单独的潜在错误,在我的情况下是无效的 Web 服务证书。该错误被 nlog 捕获,但由于我仍然无法弄清楚的原因,nlog 也引发了错误。无论如何,所以我将配置文件中的 nlog“throwExceptions”设置为 false 并重新运行我的应用程序。这样做让我发现了我的错误的真正根本原因,在我的情况下是“证书有问题。禁止连接到https://mywebservice.com/mywebservicename ”
谢谢
推荐阅读
- mangopay - 芒果支付KYC页面
- spring-boot - 从 Wildfly 10 中排除所有模块
- python - 如何在 python gtk gui 中显示 opencv 视频帧?
- forms - 从上一页网址预填充表单复选框
- r - 如何使用坐标创建地图(使用不同颜色的点)
- django - 如何阻止来自邮递员,失眠等应用程序的请求并只允许一个来源 - django rest框架
- java - 如何摆脱错误“致命信号 11 (SIGSEGV),代码 1,故障地址 0x70”
- excel - 通过条码切换excel表
- python - 如何使用 Python 使用 AWS Lambda 层?
- python-3.x - 我无法通过 pycharm 在 git 上推送我的完整项目