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

本文关键字:应用程序 修改 数据库 | 更新日期: 2023-09-27 18:22:04

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

现在我的问题是,如果我更改数据库中的任何值,这些更改都不会反映出来,为了反映这些更改,我必须重置IIS。因此,为了立即或在特定间隔之后反映变化,是否有可能再次或以某种其他方式调用application_start事件。

请帮忙。。。。

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

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

如果它们必须是最新的,那么您可以在数据库中存储一个"上次修改"的值,并在每次使用现有数据之前进行检查,如果数据发生更改,则重新加载。

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

您可以重新启动IIS。打开命令行和类型:

iisreset

重新启动应用程序,这可以通过IIS管理器或手动更改web配置来完成(在web配置中添加一个新的空行)

其他解决方案:

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