Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 清除.net应用程序';(asp和桌面应用程序)从asp应用程序缓存_C#_Asp.net_Asp.net Mvc_Wpf_Caching - Fatal编程技术网

C# 清除.net应用程序';(asp和桌面应用程序)从asp应用程序缓存

C# 清除.net应用程序';(asp和桌面应用程序)从asp应用程序缓存,c#,asp.net,asp.net-mvc,wpf,caching,C#,Asp.net,Asp.net Mvc,Wpf,Caching,在我的公司,我们所有的应用程序都使用1个数据库。我们有一个ASP.Net网站和几个桌面应用程序(WPF、WinForms) 每个应用程序都有自己的缓存系统。例如,ASP.Net网站使用IIS缓存,桌面应用程序使用内存缓存 我们开发了一个管理网站(ASP.NETMVC5)来管理全局配置。当我们从该网站更新数据库中的数据时,我们希望告诉其他应用程序更新其缓存 这样做的最佳解决方案是什么 谢谢你的帮助。有几个选项,最简单的方法是每X秒轮询一次数据库,询问是否应该重新加载缓存。这可以通过记住之前的状态

在我的公司,我们所有的应用程序都使用1个数据库。我们有一个ASP.Net网站和几个桌面应用程序(WPF、WinForms)

每个应用程序都有自己的缓存系统。例如,ASP.Net网站使用IIS缓存,桌面应用程序使用内存缓存

我们开发了一个管理网站(ASP.NETMVC5)来管理全局配置。当我们从该网站更新数据库中的数据时,我们希望告诉其他应用程序更新其缓存

这样做的最佳解决方案是什么


谢谢你的帮助。

有几个选项,最简单的方法是每X秒轮询一次数据库,询问是否应该重新加载缓存。这可以通过记住之前的状态(例如整数)来实现。如果出现偏差,请重新加载缓存

您还可以让数据库发送关于表更改的更改通知,这将比每次轮询具有更好的性能


最后一个选项是使用内存缓存的公共源,该源在所有系统中共享。这样就不需要保持它们的同步。

有几个选项,最简单的方法是每X秒轮询一次数据库,询问是否应该重新加载缓存。这可以通过记住之前的状态(例如整数)来实现。如果出现偏差,请重新加载缓存

您还可以让数据库发送关于表更改的更改通知,这将比每次轮询具有更好的性能


最后一个选项是使用内存缓存的公共源,该源在所有系统中共享。那么你根本不需要让它们保持同步。

嗨!首先,谢谢你的hep!第三种解决方案,wich似乎是最好的,现在不可能了,因为我们必须对一些最大型的应用程序架构进行深刻的更改。对于第二种解决方案,您将如何发送此通知?使用wich tech?请参见SQL Server示例。其他平台也有类似的解决方案。我阅读了您的链接,但我认为它不适合我们的应用程序。实际上,缓存中有依赖于多个表的对象。所以,我们想找到一种称为“重载用户缓存”的方法,即使用户对象基于10个表。您可以将该ID存储在全局表中的某个位置。如果清除缓存,请更新该表中的一行。嗨!首先,谢谢你的hep!第三种解决方案,wich似乎是最好的,现在不可能了,因为我们必须对一些最大型的应用程序架构进行深刻的更改。对于第二种解决方案,您将如何发送此通知?使用wich tech?请参见SQL Server示例。其他平台也有类似的解决方案。我阅读了您的链接,但我认为它不适合我们的应用程序。实际上,缓存中有依赖于多个表的对象。所以,我们想找到一种称为“重载用户缓存”的方法,即使用户对象基于10个表。您可以将该ID存储在全局表中的某个位置。如果清除缓存,请更新该表中的一行。