我创建了一个HTTPModule,用于记录请求和响应。
告诉HTTP模块如何工作的参数位于web.config文件中。
但是,为了让HTTP模块使用最新的参数值,每个请求我都会从app.config文件中读取参数。
有没有一种方法可以检测web.config文件中的更改,以便重新加载HTTP模块参数,而不是每次响应时都读取它们?
我创建了一个HTTPModule,用于记录请求和响应。
告诉HTTP模块如何工作的参数位于web.config文件中。
但是,为了让HTTP模块使用最新的参数值,每个请求我都会从app.config文件中读取参数。
有没有一种方法可以检测web.config文件中的更改,以便重新加载HTTP模块参数,而不是每次响应时都读取它们?
@Ladislav和@velijoz是正确的。web.config只会读取一次,然后将值存储在内存中,直到应用程序重新启动,因为例如更改了web.config。
当然,除非您直接打开并读取文件。那样是不好的。
如果设置经常更改,您可以将它们放在另一个文件中,读取值并将其存储在缓存中,并在文件上使用缓存依赖项。这样,您可以在不每次重启应用程序的情况下更改设置。当更改设置文件时,缓存依赖项将使缓存无效,您的代码可以再次读取文件。
西蒙
我最近学到的是,例如你改变了你的web.config文件时,技术上说asp.net应用程序并没有重启 - 它会卸载。当你发出下一个请求或启动应用程序池时,它才开始加载。
我把这归类为asp.net开发人员常见的误解之一;)