Elmah.config更新是否重新启动IIS?

Elmah.config更新是否重新启动IIS?,iis,elmah,Iis,Elmah,这似乎是一个相对简单的问题,但我没有看到在我检查的文档中明确指出。假设在Windows Server 2012/IIS 7 web服务器安装上使用典型的Elmah,如果Elmah web.config设置指向一个Elmah.config文件,在运行的应用程序下更改该文件触发器是否会导致IIS重新启动 否:直接来自MSDN: 保存Web.config文件将重新启动应用程序。您也可以使用单个节元素的configSource属性来指向在更改时不会导致应用程序重新启动的辅助配置文件。有关更多信息,请参见

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

否:直接来自MSDN:

保存Web.config文件将重新启动应用程序。您也可以使用单个节元素的configSource属性来指向在更改时不会导致应用程序重新启动的辅助配置文件。有关更多信息,请参见章节元素继承的常规属性中的configSource


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

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

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

您的elmah.config如下所示:

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

启动项目并强制执行错误时,会将新的XML文件写入App_数据文件夹。如下更改日志路径(无需重新启动应用程序):


(我改为App_Data2)

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