我有一系列WCF Web服务托管在Windows Azure中,我试图实现appfabric缓存。Azure Appfabric缓存+ WCF Web服务
我很苦恼Web服务的无状态性质,并且需要避免昂贵的初始化datacachefactory和datacache对象。
我有我的包裹在datacachefactory一个单身,因为这似乎是一个很好的起点.....
Imports Microsoft.ApplicationServer.Caching
Public Class Cache
Private Shared _DataCacheFactory As DataCacheFactory
Private Shared _DataCache As Microsoft.ApplicationServer.Caching.DataCache
Private Sub New()
End Sub
Shared ReadOnly Property DataCacheFactory As DataCacheFactory
Get
If IsNothing(_DataCacheFactory) Then
Dim localTimeout As New TimeSpan(0, 10, 0)
Dim localCacheConfig As New DataCacheLocalCacheProperties(10000, localTimeout, DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
Dim factoryConfig As New DataCacheFactoryConfiguration()
factoryConfig.LocalCacheProperties = localCacheConfig
_DataCacheFactory = New DataCacheFactory(factoryConfig)
End If
Return _DataCacheFactory
End Get
End Property
Shared ReadOnly Property DataCache As Microsoft.ApplicationServer.Caching.DataCache
Get
If IsNothing(_DataCache) Then
_DataCache = DataCacheFactory.GetDefaultCache
End If
Return _DataCache
End Get
End Property
End Class
但是当我尝试使用它,它似乎是走出去的范围并且正在重复重新创建,而不是每个天青实例只重复一次。如果我正确理解的东西,那么这基本上归结为.....我在哪里可以存储一个全局变量在一个wcf Web服务,以便它不会超出范围。
为什么downvote?这似乎是一个合理的问题。 –
您的WCF实例是如何托管的?具有Web角色的IIS或自我托管在工作角色中的IIS? –
它位于IIS Web角色中。 –