У меня есть ряд веб-служб WCF, размещенных в Windows Azure, и я пытаюсь реализовать кэширование appfabric.
Я борюсь с природой веб-сервисов без сохранения состояния и необходимостью избегать дорогостоящей инициализации объектов 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
Но когда я пытаюсь его использовать, кажется, что он выходит за рамки и повторно создается повторно, а не только один раз для каждого экземпляра Azure. Если я правильно понимаю, то это в основном сводится к..... Где я могу хранить глобальную переменную в веб-службе wcf, чтобы она не выходила за рамки.