检测web.config已更改

时间:2011-07-13 09:33:43

标签: c# .net asp.net web-config httpmodule

我创建了一个HTTPModule,它应该记录reauest和响应 告诉http模块如何在web.config中工作的参数 但是,为了让http模块使用参数的最新值,每个请求都从app.config中读取参数。

有没有办法可以检测web.config中的更改,这样我就可以重新加载http模块参数,而不是每次有响应时都读取它们?

3 个答案:

答案 0 :(得分:7)

根本不需要这样做。您只能加载这些属性一次并将它们存储在某处。每次web.config更改整个ASP.NET应用程序时,http模块都必须重新初始化。

答案 1 :(得分:2)

@Ladislav& @velijoz是对的。 web.config被读取一次并且值存储在内存中直到应用程序重新启动,因为web.config已更改为例如。

除非您正在打开并直接阅读该文件。那将是一件坏事。

如果设置定期更改,您可以将它们放在另一个文件中,读取值并将它们存储在缓存中,并对文件具有缓存依赖性。这样您就可以在不重新启动应用程序的情况下更改设置。当您更改设置文件时,缓存依赖项将使缓存无效,您的代码可能会再次读取该文件。

西蒙

答案 2 :(得分:0)

我最近了解到的是,例如,当您从技术上更改web.config时,asp.net应用程序不会重新启动-它会卸载。当您在下一个请求中触发或启动应用程序池时,它将开始加载。

我是出于对asp.net开发人员的普遍误解而提出的;)