如何在ASP.NET中存储、更新全局变量

如何在ASP.NET中存储、更新全局变量,asp.net,global-variables,Asp.net,Global Variables,我有一个C#/ASP.NET WebForms应用程序。在母版页上,我显示数据库字段中的值。例如,像“DEFCON=3”,让所有用户知道我们处于什么级别(当然,当数据库中的值发生更改时,用户在刷新页面之前不会获取新值)。但每个人的价值都是一样的 因此,我显然不希望每个用户的会话在每次加载页面时都访问数据库,以检查更新的页面(每个用户的往返,每个页面似乎效率很低)。全局变量似乎是最好的选择(尽管我不确定最现代/最简单的方法是什么) 但除此之外,还需要在数据库中的DEFCON值发生更改时更新全局变量

我有一个C#/ASP.NET WebForms应用程序。在母版页上,我显示数据库字段中的值。例如,像“DEFCON=3”,让所有用户知道我们处于什么级别(当然,当数据库中的值发生更改时,用户在刷新页面之前不会获取新值)。但每个人的价值都是一样的

因此,我显然不希望每个用户的会话在每次加载页面时都访问数据库,以检查更新的页面(每个用户的往返,每个页面似乎效率很低)。全局变量似乎是最好的选择(尽管我不确定最现代/最简单的方法是什么)

但除此之外,还需要在数据库中的DEFCON值发生更改时更新全局变量。如何触发全局变量进行更新,尤其是因为数据库中的值的更改发生在web应用程序之外


感谢您的建议。

将数据存储在应用程序变量中。使用Ajax更新变量。

第一个想法:在值更改时刷新的数据提供程序上缓存(或执行更改值的语句),(将级别包装在用户控件中并缓存其输出),或者(最不可取)或者应用程序缓存。缓存是@Cory建议的答案。尝试某种cachedependency,当数据库值更改时刷新缓存。可能是SqlCacheDependency!尝试SignalR,这是一个比缓存更新UI更好的选择