修改数据库中的值后如何反映应用程序中的更改

时间:2014-09-17 06:11:21

标签: c# asp.net

我已将web.config中存在的用户定义值移动到数据库。我从 global.cs 文件的appliction_start事件中检索数据库中的值,并将这些值存储在字典集合中,并将在整个应用程序中使用。

现在我的问题是,如果我更改数据库中的任何值,则不会反映更改,以反映我必须重置IIS的更改。因此,要立即或在特定时间间隔之后反映更改,可能会再次或以其他方式调用application_start事件。

请帮忙......

2 个答案:

答案 0 :(得分:0)

您可以在应用中设置缓存,并每隔X分钟刷新一次缓存,因此您知道这些值不会超过X分钟。

如果它们必须是最新的,那么您可以在数据库中存储“最后修改”的值,并在每次使用现有数据之前检查它,如果更改则重新加载。

您可能也可以使用SqlDependency类在发生更改时收到通知,但我从未这样做过,因此我不知道详细信息。

答案 1 :(得分:0)

您可以重新启动IIS。打开命令行并输入:

iisreset

OR

重启应用程序,可以使用IIS管理器完成,也可以手动更改Web配置(在Web配置中添加新的空行)

其他解决方案:

  • 从您的应用程序中实际刷新字典
  • 不会在应用程序启动时加载这些值,而是使用带有sql依赖关系的asp.net缓存来检测数据库中的更改。