【发布时间】:2016-04-29 14:18:59
【问题描述】:
我刚刚将我的 NancyFx Web 应用程序中的 NLog 升级到版本 4.3.2,现在该应用程序在第一次尝试获取 Logger 实例时会引发错误。抛出的错误是:
不在独立exe中运行时必须指定exePath
我已将问题缩小到 NLog Mail 目标,该目标(根据其来源)正在尝试读取:
System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).GetSection("system.net/mailSettings/smtp") 作为 SmtpSection
...尝试从应用程序的 web.config 文件中查找邮件设置。 OpenExeConfiguration 需要一个 app.exe.config 文件,而 Web 应用程序不存在该文件。
所以,我的问题是如何告诉 NLog 在哪里可以找到 web.config 文件,或者更好的是,我如何告诉 NLog 不要费心查看 web.config 文件,因为我没有存储任何文件邮件设置在那里?
这是我在 nlog.config 中的目标 xml:
<target xsi:type="Mail"
name="smtplog"
layout="${longdate} ${logger} ${message}"
useSystemNetMailSettings="false"
to="test-to@test.com"
from="test-from@test.com"
smtpUserName="USERNAME"
enableSsl="True"
smtpPassword="PASSWORD"
smtpAuthentication="Basic"
smtpServer="smtp.sendgrid.net"
smtpPort="587" />
如果我删除目标,则应用加载正常。
ps 这在我使用的早期版本的 NLog (v2.1.0) 上工作得很好
【问题讨论】:
标签: email web-config target nlog