缓存我有一定的缓存数据,并使用它来响应网络请求的WCF服务。为了处理这个需求,我把这个服务变成了一个Singleton(使用InstanceContextMode.Single
和ConcurrencyMode.Multiple
(是的,它是线程安全的))。实现在WCF服务
我试着使用设置服务其最大的超时以下绑定:
<binding name="WebHttpBinding" receiveTimeout="24.20:31:23.6470000">
<security mode="TransportCredentialOnly">
<transport clientCredentialType="None" />
</security>
</binding>
我的问题是,服务实例死在不可预知的时间间隔,这意味着第一个Web请求打会导致缓存重建(一个非常缓慢的过程)。
理想的情况下,高速缓存将在每天设定的时间重建,而无需得到由web请求命中。我可以将应用程序池设置为在设定时间回收,但这仍然无法解决服务在第一个Web请求之前未得到实例化的问题。我宁愿不必制作一个向服务发送请求的小计划脚本,因为这是一种哈克。
是否有一个WCF服务进行缓存更好的策略?别人在这里做了什么?有最佳做法吗?
我编辑了你的标题。请参阅:“[应该在其标题中包含”标签“](http://meta.stackexchange.com/questions/19190/)”,其中的共识是“不,他们不应该”。 –
你是如何托管这项服务的? IIS? –
您是否*直接将数据提供给调用者*,或者您是否将数据用作处理的一部分*? – zimdanen