【发布时间】:2014-10-10 13:17:41
【问题描述】:
我们的一些服务器上有一组 VB.NET / IIS Web 服务,它们在网站的根目录中有 web.config 文件,它们已经从中读取配置。有一个新的配置需要添加,它会立即比其他配置长很多,而且它只会不断增长。它本质上是一个逗号分隔的值,我想将它专门保存在某种配置文件中。
起初我开始用一个文本文件来做这个,但是有一个问题。文本文件的内容可能会在 Web 服务线程和进程运行时发生变化,因此他们需要在每次需要访问其值时重新读取文件。我考虑过使用某种缓存,但除非每次更新文件时都完全重新启动 Web 服务,否则缓存会阻止对文件的更新立即使用。但是每次从文本文件中读取速度很慢...
然后出现了将该值与服务已经使用的其他配置一起放入 web.config 的想法。当 web.config 被更改时,这些更改能够被缓存在代码中,并立即生效。然而,web.config 就是 web.config,它不是一个完全简单的文本文件,可以简单地从代码中读出。 IIS 以特殊方式处理 web.config。
与将逗号分隔值存储在文本文件(或数据库,可能无法用于此目的)中相比,我倾向于认为在 web.config 中放置逗号分隔值的任何负面影响都会被忽略无论如何),但我想我最好问一下。
在 web.config 中而不是在它自己的小文本文件中存储一个可能很长的逗号分隔值意味着什么?文件是一个特别好的主意还是坏主意?对我来说,web.config 似乎很容易相处,而不必一遍又一遍地重新阅读文件,但它肯定比普通用户意识到的要多。谢谢!
【问题讨论】:
-
此数据是否经常更改?如果是这样,web.config 将是一个坏主意。每次更改 web.config 时,都会回收应用程序池。
-
@Namrehs 它的更改频率可能会出现很小的峰值,但在大多数情况下,它应该相当稳定。
-
@Namrehs 这很有启发性。你想用它作为答案吗?
标签: web-services iis configuration-files