在WCF服务启动时将数据加载到内存中?

时间:2012-11-19 01:45:37

标签: c# wcf

如何在服务启动时加载数据?截至目前,我在控制台应用程序上托管我的服务,在服务启动之前,我首先将数据库中的所有信息加载到内存中 (其他对象在我的服务之前保存所有信息)。我正在使用静态变量来访问我的服务中的数据。我知道这种做法是错误的,我怎么能做对。我正在使用nettcp绑定,它是自托管的。先感谢您! :)

1 个答案:

答案 0 :(得分:0)

为什么你认为这种方法有误?如果您的数据根本没有变化,静态变量就可以正常工作。如果您的数据发生了更改但不是非常频繁,并且您的应用程序可以使用某些“陈旧”数据生存,您可以使用System.Web.Caching.Cache并根据时间或其他依赖关系自动使缓存中的数据到期。 如果您希望在服务应用程序从数据库中检索数据时等待服务用户等待,那么您必须拥有一个单独的线程来监视数据库并更新缓存的值或使用SqlCacheDependency机制,用于在数据库中更改基础数据时使缓存值无效并刷新。