From 5bb2ff2f78b06f91eb5513af70dbd25b981fcf53 Mon Sep 17 00:00:00 2001 From: Daniel Stolt Date: Tue, 27 Aug 2013 23:16:46 +0200 Subject: [PATCH] Fixed bug in Azure cache providers (endless tenant restart). --- .../Caching/Database/AzureCacheConfiguration.cs | 16 ++++++++++++---- .../Output/AzureOutputCacheStorageProvider.cs | 16 ++++++++++++---- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheConfiguration.cs b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheConfiguration.cs index 726cdef6f..9155b8247 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheConfiguration.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheConfiguration.cs @@ -19,14 +19,22 @@ namespace Orchard.Azure.Services.Caching.Database { : base() { // Create default configuration to local role-based cache when feature is enabled. - if (!shellSettings.Keys.Contains(Constants.DatabaseCacheHostIdentifierSettingName)) + var doSave = false; + if (!shellSettings.Keys.Contains(Constants.DatabaseCacheHostIdentifierSettingName)) { shellSettings[Constants.DatabaseCacheHostIdentifierSettingName] = "Orchard.Azure.Web"; - if (!shellSettings.Keys.Contains(Constants.DatabaseCacheCacheNameSettingName)) + doSave = true; + } + if (!shellSettings.Keys.Contains(Constants.DatabaseCacheCacheNameSettingName)) { shellSettings[Constants.DatabaseCacheCacheNameSettingName] = "DatabaseCache"; - if (!shellSettings.Keys.Contains(Constants.DatabaseCacheIsSharedCachingSettingName)) + doSave = true; + } + if (!shellSettings.Keys.Contains(Constants.DatabaseCacheIsSharedCachingSettingName)) { shellSettings[Constants.DatabaseCacheIsSharedCachingSettingName] = "false"; + doSave = true; + } - shellSettingsManager.SaveSettings(shellSettings); + if (doSave) + shellSettingsManager.SaveSettings(shellSettings); CacheHostIdentifier = shellSettings[Constants.DatabaseCacheHostIdentifierSettingName]; CacheName = shellSettings[Constants.DatabaseCacheCacheNameSettingName]; diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Output/AzureOutputCacheStorageProvider.cs b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Output/AzureOutputCacheStorageProvider.cs index 0cd4e5874..eba990340 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Output/AzureOutputCacheStorageProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Output/AzureOutputCacheStorageProvider.cs @@ -18,14 +18,22 @@ namespace Orchard.Azure.Services.Caching.Output { : base() { // Create default configuration to local role-based cache when feature is enabled. - if (!shellSettings.Keys.Contains(Constants.OutputCacheHostIdentifierSettingName)) + var doSave = false; + if (!shellSettings.Keys.Contains(Constants.OutputCacheHostIdentifierSettingName)) { shellSettings[Constants.OutputCacheHostIdentifierSettingName] = "Orchard.Azure.Web"; - if (!shellSettings.Keys.Contains(Constants.OutputCacheCacheNameSettingName)) + doSave = true; + } + if (!shellSettings.Keys.Contains(Constants.OutputCacheCacheNameSettingName)) { shellSettings[Constants.OutputCacheCacheNameSettingName] = "OutputCache"; - if (!shellSettings.Keys.Contains(Constants.OutputCacheIsSharedCachingSettingName)) + doSave = true; + } + if (!shellSettings.Keys.Contains(Constants.OutputCacheIsSharedCachingSettingName)) { shellSettings[Constants.OutputCacheIsSharedCachingSettingName] = "false"; + doSave = true; + } - shellSettingsManager.SaveSettings(shellSettings); + if (doSave) + shellSettingsManager.SaveSettings(shellSettings); var cacheHostIdentifier = shellSettings[Constants.OutputCacheHostIdentifierSettingName]; var cacheName = shellSettings[Constants.OutputCacheCacheNameSettingName];