From c8e277ba11ae5f267e932757e8dceda61f0878ee Mon Sep 17 00:00:00 2001 From: Daniel Stolt Date: Wed, 4 Sep 2013 21:57:48 +0200 Subject: [PATCH] Removed support for Shared Cache from Azure caching providers. Fixed bug in Azure output cache provider with tenant names containing non-alphanumeric characters. Removed all Azure-related assembly references from Orchard.Web.csproj. --- .../ServiceConfiguration.cscfg | 42 ++++------ .../ServiceDefinition.csdef | 84 +++++++++---------- .../Modules/Orchard.Azure/Constants.cs | 3 - .../Orchard.Azure/Orchard.Azure.csproj | 40 +++++++++ .../Caching/CacheClientConfiguration.cs | 55 +++--------- .../Caching/Database/AzureCacheClient.cs | 40 ++------- .../Caching/Database/AzureCacheProvider.cs | 4 +- .../Output/AzureOutputCacheStorageProvider.cs | 70 +++++----------- src/Orchard.Web/Orchard.Web.csproj | 66 ++------------- src/Orchard.Web/Web.config | 23 +++-- 10 files changed, 164 insertions(+), 263 deletions(-) diff --git a/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceConfiguration.cscfg b/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceConfiguration.cscfg index 7def98a90..dd2da2e1f 100644 --- a/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceConfiguration.cscfg +++ b/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceConfiguration.cscfg @@ -1,27 +1,21 @@  - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceDefinition.csdef b/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceDefinition.csdef index bdbcb2b20..2643d0147 100644 --- a/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceDefinition.csdef +++ b/src/Orchard.Azure/Orchard.Azure.CloudService/ServiceDefinition.csdef @@ -1,49 +1,43 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Constants.cs b/src/Orchard.Web/Modules/Orchard.Azure/Constants.cs index f4a076385..7d1aa5b5d 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Constants.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Constants.cs @@ -16,9 +16,6 @@ public const string CacheHostIdentifierSettingName = "HostIdentifier"; public const string CacheCacheNameSettingName = "CacheName"; - public const string CacheHostnameSettingName = "Hostname"; - public const string CachePortSettingName = "Port"; public const string CacheAuthorizationTokenSettingName = "AuthorizationToken"; - public const string CacheIsSharedCachingSettingName = "IsSharedCaching"; } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj index 9563b8a1e..224a26536 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj @@ -49,6 +49,14 @@ False ..\..\..\..\lib\log4net\log4net.dll + + False + ..\..\..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.AzureClientHelper.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.AzureCommon.dll + False ..\..\..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.Client.dll @@ -57,14 +65,46 @@ False ..\..\..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.Core.dll + + False + ..\..\..\..\lib\windowsazure\Microsoft.Data.Edm.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.Data.OData.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.Web.DistributedCache.dll + False ..\..\..\..\lib\windowsazure\Microsoft.WindowsAzure.Configuration.dll + + False + ..\..\..\..\lib\windowsazure\Microsoft.WindowsAzure.Diagnostics.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.WindowsAzure.Diagnostics.StorageUtility.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.WindowsAzure.ServiceRuntime.dll + False ..\..\..\..\lib\windowsazure\Microsoft.WindowsAzure.Storage.dll + + False + ..\..\..\..\lib\windowsazure\Microsoft.WindowsFabric.Common.dll + + + False + ..\..\..\..\lib\windowsazure\Microsoft.WindowsFabric.Data.Common.dll + False ..\..\..\..\lib\nhibernate\NHibernate.dll diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/CacheClientConfiguration.cs b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/CacheClientConfiguration.cs index 83460a578..89711d7f2 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/CacheClientConfiguration.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/CacheClientConfiguration.cs @@ -7,15 +7,10 @@ namespace Orchard.Azure.Services.Caching { public class CacheClientConfiguration { public static CacheClientConfiguration FromPlatformConfiguration(string tenant, string settingNamePrefix) { - var portString = PlatformConfiguration.GetSetting(Constants.CachePortSettingName, tenant, settingNamePrefix); - var isSharedCachingString = PlatformConfiguration.GetSetting(Constants.CacheIsSharedCachingSettingName, tenant, settingNamePrefix); return new CacheClientConfiguration { HostIdentifier = PlatformConfiguration.GetSetting(Constants.CacheHostIdentifierSettingName, tenant, settingNamePrefix), CacheName = PlatformConfiguration.GetSetting(Constants.CacheCacheNameSettingName, tenant, settingNamePrefix), - Hostname = PlatformConfiguration.GetSetting(Constants.CacheHostnameSettingName, tenant, settingNamePrefix), - Port = String.IsNullOrWhiteSpace(portString) ? 0 : Int32.Parse(portString), AuthorizationToken = PlatformConfiguration.GetSetting(Constants.CacheAuthorizationTokenSettingName, tenant, settingNamePrefix), - IsSharedCaching = !String.IsNullOrWhiteSpace(isSharedCachingString) && Boolean.Parse(isSharedCachingString) }; } @@ -29,40 +24,19 @@ namespace Orchard.Azure.Services.Caching { protected set; } - public string Hostname { - get; - protected set; - } - - public int Port { - get; - protected set; - } - public string AuthorizationToken { get; protected set; } - public bool IsSharedCaching { - get; - protected set; - } - public bool CompressionIsEnabled { get; set; } - public bool AutodiscoverIsEnabled { - get { - return String.IsNullOrWhiteSpace(Hostname) || Port == 0 || String.IsNullOrWhiteSpace(AuthorizationToken); - } - } - public void Validate() { - if (AutodiscoverIsEnabled && String.IsNullOrWhiteSpace(HostIdentifier)) { - throw new Exception("AutoDiscover mode is detected but HostIdentifier is missing or empty."); + if (String.IsNullOrWhiteSpace(HostIdentifier)) { + throw new Exception("The HostIdentifier value is missing or empty."); } } @@ -73,27 +47,22 @@ namespace Orchard.Azure.Services.Caching { IsCompressionEnabled = CompressionIsEnabled }; - if (AutodiscoverIsEnabled) { - dataCacheFactoryConfiguration.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, HostIdentifier); - } - else { - dataCacheFactoryConfiguration.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(false); - dataCacheFactoryConfiguration.Servers = new[] { new DataCacheServerEndpoint(Hostname, Port) }; - dataCacheFactoryConfiguration.SecurityProperties = new DataCacheSecurity(AuthorizationToken); - } + dataCacheFactoryConfiguration.AutoDiscoverProperty = new DataCacheAutoDiscoverProperty(true, HostIdentifier); + if (!String.IsNullOrEmpty(AuthorizationToken)) + dataCacheFactoryConfiguration.SecurityProperties = new DataCacheSecurity(AuthorizationToken, sslEnabled: false); var dataCacheFactory = new DataCacheFactory(dataCacheFactoryConfiguration); - if (IsSharedCaching || String.IsNullOrEmpty(CacheName)) { - return dataCacheFactory.GetDefaultCache(); + if (!String.IsNullOrEmpty(CacheName)) { + return dataCacheFactory.GetCache(CacheName); } - return dataCacheFactory.GetCache(CacheName); + return dataCacheFactory.GetDefaultCache(); } - public override string ToString() { - var key = HostIdentifier + "_" + CacheName + "_" + Hostname + "_" + Port + "_" + AuthorizationToken + "_" + IsSharedCaching + "_" + CompressionIsEnabled; - return key; - } + //public override string ToString() { + // var key = HostIdentifier + "_" + CacheName + "_" + Hostname + "_" + Port + "_" + AuthorizationToken + "_" + IsSharedCaching + "_" + CompressionIsEnabled; + // return key; + //} } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheClient.cs b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheClient.cs index 9ce87bce3..7235d851e 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheClient.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheClient.cs @@ -8,22 +8,19 @@ namespace Orchard.Azure.Services.Caching.Database { public class AzureCacheClient : ICache { - public AzureCacheClient(DataCache cache, bool isSharedCaching, string region, TimeSpan? expirationTime) { + public AzureCacheClient(DataCache cache, string region, TimeSpan? expirationTime) { _logger = LoggerProvider.LoggerFor(typeof(AzureCacheClient)); _cache = cache; - _isSharedCaching = isSharedCaching; _region = region ?? DefaultRegion; - // Azure Cache supports only alphanumeric strings for regions and - // Orchard can get a lot more creative than that. Remove all non + // Azure Cache supports only alphanumeric strings for regions, but + // NHibernate can get a lot more creative than that. Remove all non // alphanumering characters from the region, and append the hash code // of the original string to mitigate the risk of two distinct original // region strings yielding the same transformed region string. _regionAlphaNumeric = new String(Array.FindAll(_region.ToCharArray(), Char.IsLetterOrDigit)) + _region.GetHashCode().ToString(CultureInfo.InvariantCulture); _expirationTime = expirationTime; - if (!isSharedCaching) { - _cache.CreateRegion(_regionAlphaNumeric); - } + _cache.CreateRegion(_regionAlphaNumeric); //_lockHandleDictionary = new ConcurrentDictionary(); //_lockTimeout = TimeSpan.FromSeconds(30); @@ -36,22 +33,17 @@ namespace Orchard.Azure.Services.Caching.Database { private const string DefaultRegion = "NHibernate"; private readonly IInternalLogger _logger; private readonly DataCache _cache; - private readonly bool _isSharedCaching; private readonly string _region; private readonly string _regionAlphaNumeric; private readonly TimeSpan? _expirationTime; public object Get(object key) { - if (key == null) + if (key == null) { throw new ArgumentNullException("key", "The parameter 'key' must not be null."); + } - if (_logger.IsDebugEnabled) { + if (_logger.IsDebugEnabled) _logger.DebugFormat("Get() invoked with key='{0}' in region '{1}'.", key, _regionAlphaNumeric); - } - - if (_isSharedCaching) { - return _cache.Get(GetSharedCachingKey(key)); - } return _cache.Get(key.ToString(), _regionAlphaNumeric); } @@ -60,7 +52,6 @@ namespace Orchard.Azure.Services.Caching.Database { if (key == null) { throw new ArgumentNullException("key", "The parameter 'key' must not be null."); } - if (value == null) { throw new ArgumentNullException("value", "The parameter 'value' must not be null."); } @@ -69,10 +60,7 @@ namespace Orchard.Azure.Services.Caching.Database { _logger.DebugFormat("Put() invoked with key='{0}' and value='{1}' in region '{2}'.", key, value, _regionAlphaNumeric); } - if (_isSharedCaching) { - _cache.Put(GetSharedCachingKey(key), value); - } - else if (_expirationTime.HasValue) { + if (_expirationTime.HasValue) { _cache.Put(key.ToString(), value, _expirationTime.Value, _regionAlphaNumeric); } else { @@ -89,10 +77,6 @@ namespace Orchard.Azure.Services.Caching.Database { _logger.DebugFormat("Remove() invoked with key='{0}' in region '{1}'.", key, _regionAlphaNumeric); } - if (_isSharedCaching) { - _cache.Remove(key.ToString()); - } - _cache.Remove(key.ToString(), _regionAlphaNumeric); } @@ -101,10 +85,6 @@ namespace Orchard.Azure.Services.Caching.Database { _logger.DebugFormat("Clear() invoked in region '{0}'.", _regionAlphaNumeric); } - if (_isSharedCaching) { - return; // Can't remove an individual region with Shared Caching. - } - _cache.ClearRegion(_regionAlphaNumeric); } @@ -193,9 +173,5 @@ namespace Orchard.Azure.Services.Caching.Database { return _region; } } - - private string GetSharedCachingKey(object key) { - return String.Format("{0}_{1}", _region, key); - } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheProvider.cs b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheProvider.cs index 5073f01d1..af34b1286 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheProvider.cs +++ b/src/Orchard.Web/Modules/Orchard.Azure/Services/Caching/Database/AzureCacheProvider.cs @@ -8,7 +8,6 @@ namespace Orchard.Azure.Services.Caching.Database { public class AzureCacheProvider : ICacheProvider { private DataCache _dataCache; - private bool _isSharedCaching; public ICache BuildCache(string regionName, IDictionary properties) { @@ -22,7 +21,7 @@ namespace Orchard.Azure.Services.Caching.Database { expiration = TimeSpan.FromSeconds(Int32.Parse(expirationString)); } - return new AzureCacheClient(_dataCache, _isSharedCaching, regionName, expiration); + return new AzureCacheClient(_dataCache, regionName, expiration); } public long NextTimestamp() { @@ -49,7 +48,6 @@ namespace Orchard.Azure.Services.Caching.Database { } _dataCache = configuration.CreateCache(); - _isSharedCaching = configuration.IsSharedCaching; } public void Stop() { 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 94af0f158..37286ceba 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 @@ -7,6 +7,7 @@ using Orchard.Environment.Extensions; using Orchard.Logging; using Orchard.OutputCache.Models; using Orchard.OutputCache.Services; +using System.Globalization; namespace Orchard.Azure.Services.Caching.Output { @@ -25,68 +26,44 @@ namespace Orchard.Azure.Services.Caching.Output { } _cache = _cacheConfig.CreateCache(); + _region = shellSettings.Name; - if (!_cacheConfig.IsSharedCaching) { - // If not using Windows Azure Shared Caching we can enable additional features by - // storing all cache items in a region. This enables enumerating and counting all - // items currently in the cache. - _region = shellSettings.Name; - _cache.CreateRegion(_region); - } + // Azure Cache supports only alphanumeric strings for regions, but Orchard supports some + // non-alphanumeric characters in tenant names. Remove all non-alphanumering characters + // from the region, and append the hash code of the original string to mitigate the risk + // of two distinct original region strings yielding the same transformed region string. + _regionAlphaNumeric = new String(Array.FindAll(_region.ToCharArray(), Char.IsLetterOrDigit)) + _region.GetHashCode().ToString(CultureInfo.InvariantCulture); + _cache.CreateRegion(_regionAlphaNumeric); } private readonly CacheClientConfiguration _cacheConfig; private readonly DataCache _cache; private readonly string _region; + private readonly string _regionAlphaNumeric; public void Set(string key, CacheItem cacheItem) { - Logger.Debug("Set() invoked with key='{0}' in region '{1}'.", key, _region); - if (_cacheConfig.IsSharedCaching) { - _cache.Put(key, cacheItem); - } - else { - _cache.Put(key, cacheItem, TimeSpan.FromSeconds(cacheItem.ValidFor), _region); - } + Logger.Debug("Set() invoked with key='{0}' in region '{1}'.", key, _regionAlphaNumeric); + _cache.Put(key, cacheItem, TimeSpan.FromSeconds(cacheItem.ValidFor), _regionAlphaNumeric); } public void Remove(string key) { - Logger.Debug("Remove() invoked with key='{0}' in region '{1}'.", key, _region); - if (_cacheConfig.IsSharedCaching) { - _cache.Remove(key); - } - else { - _cache.Remove(key, _region); - } + Logger.Debug("Remove() invoked with key='{0}' in region '{1}'.", key, _regionAlphaNumeric); + _cache.Remove(key, _regionAlphaNumeric); } public void RemoveAll() { - Logger.Debug("RemoveAll() invoked in region '{0}'.", _region); - if (_cacheConfig.IsSharedCaching) { - _cache.Clear(); - } - else { - _cache.ClearRegion(_region); - } + Logger.Debug("RemoveAll() invoked in region '{0}'.", _regionAlphaNumeric); + _cache.ClearRegion(_regionAlphaNumeric); } public CacheItem GetCacheItem(string key) { - Logger.Debug("GetCacheItem() invoked with key='{0}' in region '{1}'.", key, _region); - if (_cacheConfig.IsSharedCaching) { - return _cache.Get(key) as CacheItem; - } - else { - return _cache.Get(key, _region) as CacheItem; - } + Logger.Debug("GetCacheItem() invoked with key='{0}' in region '{1}'.", key, _regionAlphaNumeric); + return _cache.Get(key, _regionAlphaNumeric) as CacheItem; } public IEnumerable GetCacheItems(int skip, int count) { - Logger.Debug("GetCacheItems() invoked in region '{0}'.", _region); - if (_cacheConfig.IsSharedCaching) { - Logger.Debug("Enumeration not supported with Shared Caching; returning empty enumerable."); - return Enumerable.Empty(); // Enumeration not supported with Shared Caching. - } - - return _cache.GetObjectsInRegion(_region).AsParallel() + Logger.Debug("GetCacheItems() invoked in region '{0}'.", _regionAlphaNumeric); + return _cache.GetObjectsInRegion(_regionAlphaNumeric).AsParallel() .Select(x => x.Value) .OfType() .Skip(skip) @@ -95,13 +72,8 @@ namespace Orchard.Azure.Services.Caching.Output { } public int GetCacheItemsCount() { - Logger.Debug("GetCacheItemsCount() invoked in region '{0}'.", _region); - if (_cacheConfig.IsSharedCaching) { - Logger.Debug("Enumeration not supported with Shared Caching; returning zero."); - return 0; // Enumeration not supported with Shared Caching. - } - - return _cache.GetObjectsInRegion(_region).AsParallel() + Logger.Debug("GetCacheItemsCount() invoked in region '{0}'.", _regionAlphaNumeric); + return _cache.GetObjectsInRegion(_regionAlphaNumeric).AsParallel() .Select(x => x.Value) .OfType() .Count(); diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 87eae8cf4..765d12c00 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -49,62 +49,10 @@ ..\..\lib\autofac\Autofac.dll True - - False - ..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.AzureClientHelper.dll - - - False - ..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.AzureCommon.dll - - - False - ..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.Client.dll - - - False - ..\..\lib\windowsazure\Microsoft.ApplicationServer.Caching.Core.dll - - - False - ..\..\lib\windowsazure\Microsoft.Data.Edm.dll - - - False - ..\..\lib\windowsazure\Microsoft.Data.OData.dll - - - False - ..\..\lib\windowsazure\Microsoft.Web.DistributedCache.dll - ..\..\lib\aspnetmvc\Microsoft.Web.Infrastructure.dll True - - False - ..\..\lib\windowsazure\Microsoft.WindowsAzure.Configuration.dll - - - False - ..\..\lib\windowsazure\Microsoft.WindowsAzure.Diagnostics.dll - - - False - ..\..\lib\windowsazure\Microsoft.WindowsAzure.ServiceRuntime.dll - - - False - ..\..\lib\windowsazure\Microsoft.WindowsAzure.Storage.dll - - - False - ..\..\lib\windowsazure\Microsoft.WindowsFabric.Common.dll - - - False - ..\..\lib\windowsazure\Microsoft.WindowsFabric.Data.Common.dll - ..\..\lib\newtonsoft.json\Newtonsoft.Json.dll @@ -288,17 +236,17 @@ --> - - false - + + false + - - - Modules\**\bin\Autofac.Configuration.dll;Modules\**\bin\Autofac.Configuration.pdb;Modules\**\bin\Autofac.Configuration.xml;Modules\**\bin\Autofac.dll;Modules\**\bin\Autofac.pdb;Modules\**\bin\Autofac.xml;Modules\**\bin\Castle.Core.dll;Modules\**\bin\Castle.Core.xml;Modules\**\bin\Castle.DynamicProxy2.dll;Modules\**\bin\Castle.DynamicProxy2.xml;Modules\**\bin\FluentNHibernate.dll;Modules\**\bin\FluentNHibernate.xml;Modules\**\bin\Iesi.Collections.dll;Modules\**\bin\Iesi.Collections.xml;Modules\**\bin\log4net.dll;Modules\**\bin\log4net.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureClientHelper.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureCommon.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureCommon.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.Client.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.Client.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.Core.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.Core.xml;Modules\**\bin\Microsoft.Data.Edm.dll;Modules\**\bin\Microsoft.Data.OData.dll;Modules\**\bin\Microsoft.Web.DistributedCache.dll;Modules\**\bin\Microsoft.Web.Infrastructure.dll;Modules\**\bin\Microsoft.WindowsAzure.Configuration.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.StorageUtility.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.xml;Modules\**\bin\Microsoft.WindowsAzure.Storage.dll;Modules\**\bin\Microsoft.WindowsAzure.Storage.xml;Modules\**\bin\Microsoft.WindowsFabric.Common.dll;Modules\**\bin\Microsoft.WindowsFabric.Data.Common.dll;Modules\**\bin\MySql.Data.dll;Modules\**\bin\Newtonsoft.Json.dll;Modules\**\bin\Newtonsoft.Json.xml;Modules\**\bin\NHibernate.dll;Modules\**\bin\NHibernate.Linq.dll;Modules\**\bin\NHibernate.SqlAzure.dll;Modules\**\bin\NHibernate.SqlAzure.pdb;Modules\**\bin\NHibernate.xml;Modules\**\bin\NuGet.Core.dll;Modules\**\bin\Orchard.Core.dll;Modules\**\bin\Orchard.Core.pdb;Modules\**\bin\Orchard.exe;Modules\**\bin\Orchard.Framework.dll;Modules\**\bin\Orchard.Framework.pdb;Modules\**\bin\Orchard.pdb;Modules\**\bin\Orchard.WarmupStarter.dll;Modules\**\bin\Orchard.WarmupStarter.pdb;Modules\**\bin\Orchard.Web.dll;Modules\**\bin\Orchard.Web.pdb;Modules\**\bin\System.Data.SqlServerCe.dll;Modules\**\bin\System.Net.Http.dll;Modules\**\bin\System.Net.Http.Formatting.dll;Modules\**\bin\System.Net.Http.Formatting.xml;Modules\**\bin\System.Net.Http.xml;Modules\**\bin\System.Spatial.dll;Modules\**\bin\System.Web.Helpers.dll;Modules\**\bin\System.Web.Helpers.xml;Modules\**\bin\System.Web.Http.dll;Modules\**\bin\System.Web.Http.WebHost.dll;Modules\**\bin\System.Web.Http.WebHost.xml;Modules\**\bin\System.Web.Http.xml;Modules\**\bin\System.Web.Mvc.dll;Modules\**\bin\System.Web.Mvc.xml;Modules\**\bin\System.Web.Razor.dll;Modules\**\bin\System.Web.Razor.xml;Modules\**\bin\System.Web.WebPages.Deployment.dll;Modules\**\bin\System.Web.WebPages.Deployment.xml;Modules\**\bin\System.Web.WebPages.dll;Modules\**\bin\System.Web.WebPages.Razor.dll;Modules\**\bin\System.Web.WebPages.Razor.xml;Modules\**\bin\System.Web.WebPages.xml + + Modules\**\bin\Autofac.Configuration.dll;Modules\**\bin\Autofac.Configuration.pdb;Modules\**\bin\Autofac.Configuration.xml;Modules\**\bin\Autofac.dll;Modules\**\bin\Autofac.pdb;Modules\**\bin\Autofac.xml;Modules\**\bin\Castle.Core.dll;Modules\**\bin\Castle.Core.xml;Modules\**\bin\Castle.DynamicProxy2.dll;Modules\**\bin\Castle.DynamicProxy2.xml;Modules\**\bin\FluentNHibernate.dll;Modules\**\bin\FluentNHibernate.xml;Modules\**\bin\Iesi.Collections.dll;Modules\**\bin\Iesi.Collections.xml;Modules\**\bin\log4net.dll;Modules\**\bin\log4net.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureClientHelper.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureCommon.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.AzureCommon.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.Client.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.Client.xml;Modules\**\bin\Microsoft.ApplicationServer.Caching.Core.dll;Modules\**\bin\Microsoft.ApplicationServer.Caching.Core.xml;Modules\**\bin\Microsoft.Data.Edm.dll;Modules\**\bin\Microsoft.Data.OData.dll;Modules\**\bin\Microsoft.Web.DistributedCache.dll;Modules\**\bin\Microsoft.Web.Infrastructure.dll;Modules\**\bin\Microsoft.WindowsAzure.Configuration.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.StorageUtility.dll;Modules\**\bin\Microsoft.WindowsAzure.Diagnostics.xml;Modules\**\bin\Microsoft.WindowsAzure.Storage.dll;Modules\**\bin\Microsoft.WindowsAzure.Storage.xml;Modules\**\bin\Microsoft.WindowsFabric.Common.dll;Modules\**\bin\Microsoft.WindowsFabric.Data.Common.dll;Modules\**\bin\MySql.Data.dll;Modules\**\bin\Newtonsoft.Json.dll;Modules\**\bin\Newtonsoft.Json.xml;Modules\**\bin\NHibernate.dll;Modules\**\bin\NHibernate.Linq.dll;Modules\**\bin\NHibernate.SqlAzure.dll;Modules\**\bin\NHibernate.SqlAzure.pdb;Modules\**\bin\NHibernate.xml;Modules\**\bin\NuGet.Core.dll;Modules\**\bin\Orchard.Core.dll;Modules\**\bin\Orchard.Core.pdb;Modules\**\bin\Orchard.exe;Modules\**\bin\Orchard.Framework.dll;Modules\**\bin\Orchard.Framework.pdb;Modules\**\bin\Orchard.pdb;Modules\**\bin\Orchard.WarmupStarter.dll;Modules\**\bin\Orchard.WarmupStarter.pdb;Modules\**\bin\Orchard.Web.dll;Modules\**\bin\Orchard.Web.pdb;Modules\**\bin\System.Data.SqlServerCe.dll;Modules\**\bin\System.Net.Http.dll;Modules\**\bin\System.Net.Http.Formatting.dll;Modules\**\bin\System.Net.Http.Formatting.xml;Modules\**\bin\System.Net.Http.xml;Modules\**\bin\System.Spatial.dll;Modules\**\bin\System.Web.Helpers.dll;Modules\**\bin\System.Web.Helpers.xml;Modules\**\bin\System.Web.Http.dll;Modules\**\bin\System.Web.Http.WebHost.dll;Modules\**\bin\System.Web.Http.WebHost.xml;Modules\**\bin\System.Web.Http.xml;Modules\**\bin\System.Web.Mvc.dll;Modules\**\bin\System.Web.Mvc.xml;Modules\**\bin\System.Web.Razor.dll;Modules\**\bin\System.Web.Razor.xml;Modules\**\bin\System.Web.WebPages.Deployment.dll;Modules\**\bin\System.Web.WebPages.Deployment.xml;Modules\**\bin\System.Web.WebPages.dll;Modules\**\bin\System.Web.WebPages.Razor.dll;Modules\**\bin\System.Web.WebPages.Razor.xml;Modules\**\bin\System.Web.WebPages.xml $(ExcludeSubBinFiles);**\*.Debug.config;**\*.Release.config;**\obj\**;**\bin\*.xml;**\*.cs;**\*.csproj;Modules\**\Tests\**;**\.hgignore;**\.hgtags;**\.hg\**;**\*.csproj.user;App_Data\Dependencies\*;App_Data\RecipeQueue\*;App_Data\Logs\*;App_Data\**\mappings.bin;App_Data\**\cache.dat;App_Data\**\hrestart.txt - + diff --git a/src/Orchard.Web/Web.config b/src/Orchard.Web/Web.config index d2f7cd04c..1fecae53e 100644 --- a/src/Orchard.Web/Web.config +++ b/src/Orchard.Web/Web.config @@ -8,7 +8,11 @@
-
+ + @@ -34,11 +38,16 @@ @@ -91,10 +100,14 @@ - +