Elmah.config更新重启IIS吗?

时间:2016-01-14 19:10:52

标签: iis elmah

这似乎是一个相对简单的问题,但我没有在我检查过的文档中清楚地看到它。假设在Windows Server 2012 / IIS 7 Web服务器安装上使用了典型的Elmah,如果Elmah web.config设置指向Elmah.config文件,那么在运行的应用程序下更改该文件触发器会导致IIS重新启动吗?

2 个答案:

答案 0 :(得分:0)

否:直接来自MSDN:

保存Web.config文件会重新启动应用程序。您也可以使用各个节元素的configSource属性指向辅助配置文件,该文件在更改时不会导致应用程序重新启动。有关更多信息,请参阅由Section Elements继承的General Attributes中的configSource。

MSDN

答案 1 :(得分:0)

虽然Josh提供的答案通常是正确的,但并不是ELMAH的情况。 ELMAH每次需要时都会实例化一个新的错误日志实现,从web.config或提供的configSource读取配置。

你可以做一个简单的测试来证明这一点。如果将ELMAH配置为使用errorLog元素的外部配置文件,如下所示:

<elmah>
  <errorLog configSource="elmah.config"/>
</elmah>

你的elmah.config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data" />

当您启动项目并强制执行错误时,会将新的XML文件写入App_Data文件夹。像这样更改logPath(不重新启动应用程序):

<?xml version="1.0" encoding="utf-8"?>
<errorLog type="Elmah.XmlFileErrorLog, Elmah" logPath="~/App_Data2" />

(我改为App_Data2)。

强制发生新错误,您现在将看到ELMAH在文件系统上创建App_Data2文件夹。