2013-03-14 97 views
0

我有一个Windows Communication Foundation(WCF)服务正在运行。当一个服务被调用时,有时服务必须重新启动并填充所有的静态值,因为我猜Web服务器会在非活动时间后关闭服务。如果它被不断调用,它将保持活动状态并且所有的值都被填充。我在那个类中有一个静态整数供服务调用使用,例如我有30个整数,但我有时使用服务调用来设置该静态值,以便新值为20,但由于该服务被解析为Web服务器经过一段时间的不活动后,该值再次初始化为30.是否有办法将永久性的30值设置为20当WCF服务被构造(静态构造函数)被调用?有没有更好的方法来做到这一点?我希望通过Web服务调用时想要永久更改这些值中的2-3个。永久更改静态值

+3

听起来像是你需要使用一个数据库或类似的存储介质上的这些值的WCF服务。 – ChrisBint 2013-03-14 17:04:02

+1

http://redis.io/非常适合这个(轻量级,持久性会话和服务器) – 2013-03-14 17:05:07

回答

0

我会建议使用内置的设置静态类

Settings.Default["StaticValue"] = "30"; 
Settings.Default.Save(); 

http://msdn.microsoft.com/en-us/library/aa730869(v=vs.80).aspx

+0

我怀疑这是线程安全的。 'Settings'是为Windows窗体设计的,它通常只有一次触摸该代码的单个线程。与WCF不一样。 – 2013-03-15 00:57:54

0

即使没有重新启动,如果您只是将此值存储在内存中,它不会被永久存储。一个数据库或类似的会很好,但如果你没有使用任何数据库的数据库,使用一个来存储单个值似乎是矫枉过正。如何写入文件?