这似乎是一个相对简单的问题,但我没有在我检查过的文档中清楚地看到它。假设在Windows Server 2012 / IIS 7 Web服务器安装上使用了典型的Elmah,如果Elmah web.config设置指向Elmah.config文件,那么在运行的应用程序下更改该文件触发器会导致IIS重新启动吗?
答案 0 :(得分:0)
否:直接来自MSDN:
保存Web.config文件会重新启动应用程序。您也可以使用各个节元素的configSource属性指向辅助配置文件,该文件在更改时不会导致应用程序重新启动。有关更多信息,请参阅由Section Elements继承的General Attributes中的configSource。
答案 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文件夹。