如何在修改数据库中的值后反映应用程序中的更改
本文关键字:应用程序 修改 数据库 | 更新日期: 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缓存来检测数据库中的更改