NLog Mail 目标在 Web 应用程序中使用时失败
NLog Mail target fails when used in a web application
我刚刚将我的 NancyFx Web 应用程序中的 NLog 升级到版本 4.3.2,现在应用程序在第一次尝试获取 Logger 实例时抛出错误。抛出的错误是:
exePath must be specified when not running inside a stand alone exe
我已将问题缩小到 NLog Mail 目标,该目标(根据其来源)正在尝试读取:
System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).GetSection("system.net/mailSettings/smtp")
as 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)
配合得很好
这是 NLog 4.3.2 中的错误,已在 4.3.3 中修复
我刚刚将我的 NancyFx Web 应用程序中的 NLog 升级到版本 4.3.2,现在应用程序在第一次尝试获取 Logger 实例时抛出错误。抛出的错误是:
exePath must be specified when not running inside a stand alone exe
我已将问题缩小到 NLog Mail 目标,该目标(根据其来源)正在尝试读取:
System.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).GetSection("system.net/mailSettings/smtp") as 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)
配合得很好这是 NLog 4.3.2 中的错误,已在 4.3.3 中修复