Browse Source

Merge pull request #410 from KevinHoward/master

Several updates to optimize the ServiceStack framework tests.
Michael Hixson 12 years ago
parent
commit
b87fb767cc
62 changed files with 5395 additions and 529 deletions
  1. 9 1
      servicestack/README.md
  2. BIN
      servicestack/lib/AWSSDK.1.5.28.3/AWSSDK.1.5.28.3.nupkg
  3. 17 0
      servicestack/lib/AWSSDK.1.5.28.3/AWSSDK.1.5.28.3.nuspec
  4. BIN
      servicestack/lib/AWSSDK.1.5.28.3/lib/AWSSDK.dll
  5. BIN
      servicestack/lib/EnyimMemcached.2.12/EnyimMemcached.2.12.nupkg
  6. 14 0
      servicestack/lib/EnyimMemcached.2.12/EnyimMemcached.2.12.nuspec
  7. BIN
      servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.dll
  8. BIN
      servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.pdb
  9. 2032 0
      servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.xml
  10. BIN
      servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/ServiceStack.Caching.AwsDynamoDb.3.9.55.nupkg
  11. 24 0
      servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/ServiceStack.Caching.AwsDynamoDb.3.9.55.nuspec
  12. BIN
      servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/lib/ServiceStack.CacheAccess.AwsDynamoDb.dll
  13. BIN
      servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/lib/ServiceStack.CacheAccess.AwsDynamoDb.pdb
  14. BIN
      servicestack/lib/ServiceStack.Caching.Azure.3.9.55/ServiceStack.Caching.Azure.3.9.55.nupkg
  15. 24 0
      servicestack/lib/ServiceStack.Caching.Azure.3.9.55/ServiceStack.Caching.Azure.3.9.55.nuspec
  16. BIN
      servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.dll
  17. 25 0
      servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.dll.config
  18. BIN
      servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.pdb
  19. BIN
      servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/ServiceStack.Caching.Memcached.3.9.55.nupkg
  20. 24 0
      servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/ServiceStack.Caching.Memcached.3.9.55.nuspec
  21. BIN
      servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/lib/ServiceStack.CacheAccess.Memcached.dll
  22. BIN
      servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/lib/ServiceStack.CacheAccess.Memcached.pdb
  23. 1 0
      servicestack/lib/ServiceStack.OrmLite.MySql.3.9.57/ServiceStack.OrmLite.MySql.3.9.57.nuspec
  24. BIN
      servicestack/lib/ServiceStack.Redis.3.9.56/ServiceStack.Redis.3.9.56.nupkg
  25. BIN
      servicestack/lib/ServiceStack.Redis.3.9.56/lib/net35/ServiceStack.Redis.dll
  26. BIN
      servicestack/lib/ServiceStack.Redis.3.9.57/ServiceStack.Redis.3.9.57.nupkg
  27. 2 1
      servicestack/lib/ServiceStack.Redis.3.9.57/ServiceStack.Redis.3.9.57.nuspec
  28. 0 0
      servicestack/lib/ServiceStack.Redis.3.9.57/lib/net35/ServiceStack.Redis.XML
  29. BIN
      servicestack/lib/ServiceStack.Redis.3.9.57/lib/net35/ServiceStack.Redis.dll
  30. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/WindowsAzure.Caching.1.7.0.0.nupkg
  31. 17 0
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/WindowsAzure.Caching.1.7.0.0.nuspec
  32. 30 0
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/content/app.config.Transform
  33. 38 0
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/content/web.config.Transform
  34. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Client.dll
  35. 868 0
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Client.xml
  36. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Core.dll
  37. 920 0
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Core.xml
  38. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.Web.DistributedCache.dll
  39. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.WindowsFabric.Common.dll
  40. BIN
      servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.WindowsFabric.Data.Common.dll
  41. 20 188
      servicestack/src/AppHost.cs
  42. 140 0
      servicestack/src/AppHostConfigHelper.cs
  43. 11 2
      servicestack/src/Model/Fortune.cs
  44. 65 29
      servicestack/src/Model/World.cs
  45. 33 0
      servicestack/src/Properties/AssemblyInfo.cs
  46. 72 0
      servicestack/src/SafeRandom.cs
  47. 5 1
      servicestack/src/SelfHost/App.config
  48. 85 0
      servicestack/src/SelfHost/AppHostSelfHelper.cs
  49. 55 0
      servicestack/src/SelfHost/AppSelfHost.cs
  50. 2 6
      servicestack/src/SelfHost/Program.cs
  51. 54 8
      servicestack/src/SelfHost/ServiceStackBenchmark.SelfHost.csproj
  52. 2 2
      servicestack/src/SelfHost/app.manifest
  53. 1 1
      servicestack/src/SelfHost/packages.config
  54. 186 0
      servicestack/src/Service/MySqlService.cs
  55. 187 0
      servicestack/src/Service/PostgreSqlService.cs
  56. 99 0
      servicestack/src/Service/Services.cs
  57. 187 0
      servicestack/src/Service/SqlServerService.cs
  58. 91 5
      servicestack/src/ServiceStackBenchmark.csproj
  59. 20 0
      servicestack/src/ServiceStackBenchmark.sln
  60. 0 284
      servicestack/src/Services.cs
  61. 28 0
      servicestack/src/Web.config
  62. 7 1
      servicestack/src/packages.config

+ 9 - 1
servicestack/README.md

@@ -69,7 +69,7 @@
 
 **Web Servers**
 
-* Self Hosted (Windows)
+* Self Hosting using HTTPListener (Windows/Linux)
 * IIS 8 (Windows)
 * nginx 1.4.0 & XSP FastCGI (Linux)
 
@@ -84,6 +84,14 @@
 * [MySQL 5.x](http://www.nuget.org/packages/mysql.data) 
 * [PostgreSQL 7.x](http://www.nuget.org/packages/Npgsql)
 
+**Caching Providers**
+
+* In-Memory
+* Redis NoSQL Db - [redis]()  [ServiceStack package](http://www.nuget.org/packages/ServiceStack.Redis)
+* MemCache - [memcache](http://www.nuget.org/packages/EnyimMemcached)  [ServiceStack package](http://www.nuget.org/packages/ServiceStack.Caching.Memcached)
+* Amazon Web Services In-Memory DynamoDb DataCache - [aws](http://www.nuget.org/packages/AWSSDK)  [ServiceStack package](http://www.nuget.org/packages/ServiceStack.Caching.AwsDynamoDb)
+* Microsoft Azure In-Memory DataCache - [azure](http://www.nuget.org/packages/WindowsAzure.Caching)  [ServiceStack package](http://www.nuget.org/packages/ServiceStack.Caching.Azure)
+
 **Developer Tools**
 
 * Visual Studio 2012

BIN
servicestack/lib/AWSSDK.1.5.28.3/AWSSDK.1.5.28.3.nupkg


+ 17 - 0
servicestack/lib/AWSSDK.1.5.28.3/AWSSDK.1.5.28.3.nuspec

@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>AWSSDK</id>
+    <version>1.5.28.3</version>
+    <title>AWS SDK for .NET</title>
+    <authors>Amazon Web Services</authors>
+    <owners>Amazon Web Services</owners>
+    <licenseUrl>http://aws.amazon.com/apache2.0/</licenseUrl>
+    <projectUrl>http://aws.amazon.com/sdkfornet/</projectUrl>
+    <iconUrl>http://media.amazonwebservices.com/aws_singlebox_01.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Build applications that tap into the cost-effective, scalable, and reliable AWS cloud. Get started in minutes using AWS infrastructure services, including Amazon Simple Storage Service (Amazon S3), Amazon Elastic Compute Cloud (Amazon EC2), and Amazon SimpleDB.</description>
+    <language>en-US</language>
+    <tags>AWS Amazon cloud</tags>
+  </metadata>
+</package>

BIN
servicestack/lib/AWSSDK.1.5.28.3/lib/AWSSDK.dll


BIN
servicestack/lib/EnyimMemcached.2.12/EnyimMemcached.2.12.nupkg


+ 14 - 0
servicestack/lib/EnyimMemcached.2.12/EnyimMemcached.2.12.nuspec

@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>EnyimMemcached</id>
+    <version>2.12</version>
+    <authors>Attila Kiskó</authors>
+    <owners>Attila Kiskó</owners>
+    <licenseUrl>http://www.apache.org/licenses/LICENSE-2.0</licenseUrl>
+    <projectUrl>https://github.com/enyim/EnyimMemcached</projectUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>Memcached client library for .NET based languages.</description>
+    <tags>memcached enyim cache caching</tags>
+  </metadata>
+</package>

BIN
servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.dll


BIN
servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.pdb


+ 2032 - 0
servicestack/lib/EnyimMemcached.2.12/lib/net35/Enyim.Caching.xml

@@ -0,0 +1,2032 @@
+<?xml version="1.0"?>
+<doc>
+    <assembly>
+        <name>Enyim.Caching</name>
+    </assembly>
+    <members>
+        <member name="T:Enyim.Caching.Configuration.FactoryElement`1">
+            <summary>
+            This element is used to define locator/transcoder/keyTransformer instances. It also provides custom initializations for them using a factory.
+            </summary>
+            <typeparam name="TFactory"></typeparam>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.FactoryElement`1.CreateInstance">
+            <summary>
+            Creates the provider by using the factory (if present) or directly instantiating by type name
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.FactoryElement`1.Factory">
+            <summary>
+            Gets or sets the type of the factory.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.FailImmediatelyPolicy">
+            <summary>
+            Fails a node immediately when an error occures. This is the default policy.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.FailImmediatelyPolicyFactory">
+            <summary>
+            Creates instances of <see cref="T:FailImmediatelyPolicy"/>.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.ThrottlingFailurePolicy">
+            <summary>
+            Fails a node when the specified number of failures happen in a specified time window.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ThrottlingFailurePolicy.#ctor(System.Int32,System.Int32)">
+            <summary>
+            Creates a new instance of <see cref="T:ThrottlingFailurePolicy"/>.
+            </summary>
+            <param name="resetAfter">Specifies the time in milliseconds how long a node should function properly to reset its failure counter.</param>
+            <param name="failureThreshold">Specifies the number of failures that must occur in the specified time window to fail a node.</param>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.ThrottlingFailurePolicyFactory">
+            <summary>
+            Creates instances of <see cref="T:ThrottlingFailurePolicy"/>.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.IProviderFactory`1">
+            <summary>
+            Provides a way for custom initalization of the providers (locators, transcoders, key transformers)
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.ThrottlingFailurePolicyFactory.ResetAfter">
+            <summary>
+            Gets or sets the amount of time of in milliseconds after the failure counter is reset.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.ThrottlingFailurePolicyFactory.FailureThreshold">
+            <summary>
+            Gets or sets the number of failures that must happen in a time window to make a node marked as failed.
+            </summary>
+        </member>
+        <member name="T:Enyim.Collections.InterlockedStack`1">
+            <summary>
+            Implements a non-locking stack.
+            </summary>
+            <typeparam name="TItem"></typeparam>
+        </member>
+        <member name="T:Enyim.Reflection.FastActivator">
+            <summary>
+            <para>Implements a very fast object factory for dynamic object creation. Dynamically generates a factory class which will use the new() constructor of the requested type.</para>
+            <para>Much faster than using Activator at the price of the first invocation being significantly slower than subsequent calls.</para>
+            </summary>
+        </member>
+        <member name="M:Enyim.Reflection.FastActivator.Create``1">
+            <summary>
+            Creates an instance of the specified type using a generated factory to avoid using Reflection.
+            </summary>
+            <typeparam name="T">The type to be created.</typeparam>
+            <returns>The newly created instance.</returns>
+        </member>
+        <member name="M:Enyim.Reflection.FastActivator.Create(System.Type)">
+            <summary>
+            Creates an instance of the specified type using a generated factory to avoid using Reflection.
+            </summary>
+            <param name="type">The type to be created.</param>
+            <returns>The newly created instance.</returns>
+        </member>
+        <member name="T:Enyim.Caching.ILogFactory">
+            <summary>
+            Implement this interface to instantiate your custom ILog implementation
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.ILog">
+            <summary>
+            The ILog interface is used by the client to log messages.
+            </summary>
+            <remarks>Use the <see cref="T:Enyim.Caching.LogManager" /> class to programmatically assign logger implementations.</remarks>
+        </member>
+        <member name="T:Enyim.Caching.LogManager">
+            <summary>
+            Creates loggers based on the current configuration.
+            </summary>
+            <example>
+            
+            Config file:
+            
+            <configuration>
+            	<configSections>
+            		<sectionGroup name="enyim.com">
+            			<section name="log" type="Enyim.Caching.EnyimLoggerSection, Enyim.Caching" />
+            		</sectionGroup>
+            	</configSections>
+            	<enyim.com>
+            		<log factory="Enyim.Caching.Log4NetLoggerFactory, Enyim.Caching" />
+            	</enyim.com>
+            </configuration>
+            
+            Code:
+            
+            	LogManager.AssignFactory(new Log4NetLogFactory());
+            
+            </example>
+        </member>
+        <member name="M:Enyim.Caching.LogManager.AssignFactory(Enyim.Caching.ILogFactory)">
+            <summary>
+            Assigns a new logger factory programmatically.
+            </summary>
+            <param name="factory"></param>
+        </member>
+        <member name="M:Enyim.Caching.LogManager.GetLogger(System.Type)">
+            <summary>
+            Returns a new logger for the specified Type.
+            </summary>
+            <param name="type"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Enyim.Caching.LogManager.GetLogger(System.String)">
+            <summary>
+            Returns a logger with the specified name.
+            </summary>
+            <param name="name"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.IAuthenticationConfiguration">
+            <summary>
+            Defines an interface for configuring the authentication paramaters the <see cref="T:MemcachedClient"/>.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.IAuthenticationConfiguration.Type">
+            <summary>
+            Gets or sets the type of the <see cref="T:Enyim.Caching.Memcached.IAuthenticationProvider"/> which will be used authehticate the connections to the Memcached nodes.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.IAuthenticationConfiguration.Parameters">
+            <summary>
+            Gets or sets the parameters passed to the authenticator instance.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.AuthenticationElement">
+            <summary>
+            Configures the authentication settings for Memcached servers.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.AuthenticationElement.Type">
+            <summary>
+            Gets or sets the type of the <see cref="T:Enyim.Caching.Memcached.IAuthenticationProvider"/> which will be used authehticate the connections to the Memcached nodes.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.EndPointElement">
+            <summary>
+            Represents a configuration element that contains a Memcached node address. This class cannot be inherited. 
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.EndPointElement.Address">
+            <summary>
+            Gets or sets the ip address of the node.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.EndPointElement.Port">
+            <summary>
+            Gets or sets the port of the node.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.EndPointElement.EndPoint">
+            <summary>
+            Gets the <see cref="T:IPEndPoint"/> representation of this instance.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.EndPointElementCollection">
+            <summary>
+            Represents a collection of <see cref="T:EndPointElement"/> instances. This class cannot be inherited.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.EndPointElementCollection.CreateNewElement">
+            <summary>
+            Creates a new <see cref="T:ConfigurationElement"/>.
+            </summary>
+            <returns>A new <see cref="T:ConfigurationElement"/>.</returns>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.EndPointElementCollection.GetElementKey(System.Configuration.ConfigurationElement)">
+            <summary>
+            Gets the element key for a specified configuration element when overridden in a derived class.
+            </summary>
+            <param name="element">The <see cref="T:ConfigurationElement"/> to return the key for. </param>
+            <returns>An <see cref="T:Object"/> that acts as the key for the specified <see cref="T:ConfigurationElement"/>.</returns>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.EndPointElementCollection.ToIPEndPointCollection">
+            <summary>
+            Helper method; converts the collection into an <see cref="T:IPEndPoint"/> collection for the interface implementation.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.IMemcachedClientConfiguration">
+            <summary>
+            Defines an interface for configuring the <see cref="T:MemcachedClient"/>.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.IMemcachedClientConfiguration.CreateKeyTransformer">
+            <summary>
+            Creates an <see cref="T:Enyim.Caching.Memcached.IMemcachedKeyTransformer"/> instance which will be used to convert item keys for Memcached.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.IMemcachedClientConfiguration.CreateNodeLocator">
+            <summary>
+            Creates an <see cref="T:Enyim.Caching.Memcached.IMemcachedNodeLocator"/> instance which will be used to assign items to Memcached nodes.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.IMemcachedClientConfiguration.CreateTranscoder">
+            <summary>
+            Creates an <see cref="T:Enyim.Caching.Memcached.ITranscoder"/> instance which will be used to serialize or deserialize items.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.IMemcachedClientConfiguration.Servers">
+            <summary>
+            Gets a list of <see cref="T:IPEndPoint"/> each representing a Memcached server in the pool.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.IMemcachedClientConfiguration.SocketPool">
+            <summary>
+            Gets the configuration of the socket pool.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.IMemcachedClientConfiguration.Authentication">
+            <summary>
+            Gets the authentication settings.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.ISocketPoolConfiguration">
+            <summary>
+            Defines an interface for configuring the socket pool for the <see cref="T:MemcachedClient"/>.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.MinPoolSize">
+            <summary>
+            Gets or sets a value indicating the minimum amount of sockets per server in the socket pool.
+            </summary>
+            <returns>The minimum amount of sockets per server in the socket pool.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.MaxPoolSize">
+            <summary>
+            Gets or sets a value indicating the maximum amount of sockets per server in the socket pool.
+            </summary>
+            <returns>The maximum amount of sockets per server in the socket pool.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.ConnectionTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which the connection attempt will fail.
+            </summary>
+            <returns>The value of the connection timeout.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.QueueTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which the getting a connection from the pool will fail.
+            </summary>
+            <returns>The value of the queue timeout.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.ReceiveTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which receiving data from the socket will fail.
+            </summary>
+            <returns>The value of the receive timeout.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ISocketPoolConfiguration.DeadTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which an unresponsive (dead) server will be checked if it is working.
+            </summary>
+            <returns>The value of the dead timeout.</returns>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.MemcachedClientConfiguration">
+            <summary>
+            Configuration class
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.MemcachedClientConfiguration.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClientConfiguration"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.MemcachedClientConfiguration.AddServer(System.String)">
+            <summary>
+            Adds a new server to the pool.
+            </summary>
+            <param name="address">The address and the port of the server in the format 'host:port'.</param>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.MemcachedClientConfiguration.AddServer(System.String,System.Int32)">
+            <summary>
+            Adds a new server to the pool.
+            </summary>
+            <param name="address">The host name or IP address of the server.</param>
+            <param name="port">The port number of the memcached instance.</param>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.Servers">
+            <summary>
+            Gets a list of <see cref="T:IPEndPoint"/> each representing a Memcached server in the pool.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.SocketPool">
+            <summary>
+            Gets the configuration of the socket pool.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.Authentication">
+            <summary>
+            Gets the authentication settings.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.KeyTransformer">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.IMemcachedKeyTransformer"/> which will be used to convert item keys for Memcached.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.NodeLocator">
+            <summary>
+            Gets or sets the Type of the <see cref="T:Enyim.Caching.Memcached.IMemcachedNodeLocator"/> which will be used to assign items to Memcached nodes.
+            </summary>
+            <remarks>If both <see cref="M:NodeLocator"/> and  <see cref="M:NodeLocatorFactory"/> are assigned then the latter takes precedence.</remarks>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.NodeLocatorFactory">
+            <summary>
+            Gets or sets the NodeLocatorFactory instance which will be used to create a new IMemcachedNodeLocator instances.
+            </summary>
+            <remarks>If both <see cref="M:NodeLocator"/> and  <see cref="M:NodeLocatorFactory"/> are assigned then the latter takes precedence.</remarks>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.Transcoder">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.ITranscoder"/> which will be used serialize or deserialize items.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.PerformanceMonitor">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.IPerformanceMonitor"/> instance which will be used monitor the performance of the client.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientConfiguration.Protocol">
+            <summary>
+            Gets or sets the type of the communication between client and server.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.MemcachedClientSection">
+            <summary>
+            Configures the <see cref="T:MemcachedClient"/>. This class cannot be inherited.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.MemcachedClientSection.PostDeserialize">
+            <summary>
+            Called after deserialization.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.Servers">
+            <summary>
+            Returns a collection of Memcached servers which can be used by the client.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.SocketPool">
+            <summary>
+            Gets or sets the configuration of the socket pool.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.Authentication">
+            <summary>
+            Gets or sets the configuration of the authenticator.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.NodeLocator">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.IMemcachedNodeLocator"/> which will be used to assign items to Memcached nodes.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.KeyTransformer">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.IMemcachedKeyTransformer"/> which will be used to convert item keys for Memcached.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.Transcoder">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.ITranscoder"/> which will be used serialzie or deserialize items.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.PerformanceMonitor">
+            <summary>
+            Gets or sets the <see cref="T:Enyim.Caching.Memcached.IPerformanceMonitor"/> which will be used monitor the performance of the client.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.MemcachedClientSection.Protocol">
+            <summary>
+            Gets or sets the type of the communication between client and server.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.ProviderElement`1">
+            <summary>
+            This element is used to define locator/transcoder/keyTransformer instances. It also provides custom initializations for them using a factory.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.ProviderElement`1.CreateInstance">
+            <summary>
+            Creates the provider by using the factory (if present) or directly instantiating by type name
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ProviderElement`1.Type">
+            <summary>
+            Gets or sets the type of the provider.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.ProviderElement`1.Factory">
+            <summary>
+            Gets or sets the type of the provider factory.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolConfiguration.Enyim#Caching#Configuration#ISocketPoolConfiguration#MaxPoolSize">
+            <summary>
+            Gets or sets a value indicating the maximum amount of sockets per server in the socket pool.
+            </summary>
+            <returns>The maximum amount of sockets per server in the socket pool. The default is 20.</returns>
+            <remarks>It should be 0.75 * (number of threads) for optimal performance.</remarks>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.SocketPoolElement">
+            <summary>
+            Configures the socket pool settings for Memcached servers.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Configuration.SocketPoolElement.PostDeserialize">
+            <summary>
+            Called after deserialization.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.MinPoolSize">
+            <summary>
+            Gets or sets a value indicating the minimum amount of sockets per server in the socket pool.
+            </summary>
+            <returns>The minimum amount of sockets per server in the socket pool.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.MaxPoolSize">
+            <summary>
+            Gets or sets a value indicating the maximum amount of sockets per server in the socket pool.
+            </summary>
+            <returns>The maximum amount of sockets per server in the socket pool. The default is 20.</returns>
+            <remarks>It should be 0.75 * (number of threads) for optimal performance.</remarks>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.ConnectionTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which the connection attempt will fail.
+            </summary>
+            <returns>The value of the connection timeout. The default is 10 seconds.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.QueueTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which the getting a connection from the pool will fail. The default is 100 msec.
+            </summary>
+            <returns>The value of the queue timeout.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.ReceiveTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which receiving data from the socket fails.
+            </summary>
+            <returns>The value of the receive timeout. The default is 10 seconds.</returns>
+        </member>
+        <member name="P:Enyim.Caching.Configuration.SocketPoolElement.DeadTimeout">
+            <summary>
+            Gets or sets a value that specifies the amount of time after which an unresponsive (dead) server will be checked if it is working.
+            </summary>
+            <returns>The value of the dead timeout. The default is 10 secs.</returns>
+        </member>
+        <member name="T:Enyim.Caching.Configuration.TextElement">
+            <summary>
+            CDATA config element
+            </summary>
+        </member>
+        <member name="T:Enyim.HashkitCrc32">
+            <summary>
+            CRC-32 implementation. Compatible with libhashkit.
+            </summary>
+        </member>
+        <member name="T:Enyim.HashkitMurmur">
+            <summary>
+            Murmur hash. Uses the same seed values as libhashkit.
+            </summary>
+            <remarks>Does not support block based hashing.</remarks>
+        </member>
+        <member name="T:Enyim.HashkitOneAtATime">
+            <summary>
+            This is Jenkin's "One at A time Hash".
+            http://en.wikipedia.org/wiki/Jenkins_hash_function
+            
+            Coming from libhashkit.
+            </summary>
+            <remarks>Does not support block based hashing.</remarks>
+        </member>
+        <member name="T:Enyim.HashCodeCombiner">
+            <summary>
+            Combines multiple hash codes into one.
+            </summary>
+        </member>
+        <member name="T:Enyim.Collections.InterlockedQueue`1">
+            <summary>
+            Implements a non-locking queue.
+            </summary>
+            <typeparam name="T"></typeparam>
+        </member>
+        <member name="M:Enyim.Collections.InterlockedQueue`1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:InterlockedQueue"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.Collections.InterlockedQueue`1.Dequeue(`0@)">
+            <summary>
+            Removes and returns the item at the beginning of the <see cref="T:InterlockedQueue"/>.
+            </summary>
+            <param name="value">The object that is removed from the beginning of the <see cref="T:InterlockedQueue"/>.</param>
+            <returns><value>true</value> if an item was successfully dequeued; otherwise <value>false</value>.</returns>
+        </member>
+        <member name="M:Enyim.Collections.InterlockedQueue`1.Enqueue(`0)">
+            <summary>
+            Adds an object to the end of the <see cref="T:InterlockedQueue"/>.
+            </summary>
+            <param name="value">The item to be added to the <see cref="T:InterlockedQueue"/>. The value can be <value>null</value>.</param>
+        </member>
+        <member name="T:Enyim.FNV64">
+            <summary>
+            Implements a 64 bit long FNV1 hash.
+            </summary>
+            <remarks>
+            Calculation found at http://lists.danga.com/pipermail/memcached/2007-April/003846.html, but 
+            it is pretty much available everywhere
+            </remarks>
+        </member>
+        <member name="M:Enyim.FNV64.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:FNV64"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV64.Initialize">
+            <summary>
+            Initializes an instance of <see cref="T:FNV64"/>.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV64.HashCore(System.Byte[],System.Int32,System.Int32)">
+            <summary>Routes data written to the object into the <see cref="T:FNV64" /> hash algorithm for computing the hash.</summary>
+            <param name="array">The input data. </param>
+            <param name="ibStart">The offset into the byte array from which to begin using data. </param>
+            <param name="cbSize">The number of bytes in the array to use as data. </param>
+        </member>
+        <member name="M:Enyim.FNV64.HashFinal">
+            <summary>
+            Returns the computed <see cref="T:FNV64" /> hash value after all data has been written to the object.
+            </summary>
+            <returns>The computed hash code.</returns>
+        </member>
+        <member name="T:Enyim.FNV64a">
+            <summary>
+            Implements a 64 bit long FVNV1a hash.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV64a.HashCore(System.Byte[],System.Int32,System.Int32)">
+            <summary>Routes data written to the object into the <see cref="T:FNV64" /> hash algorithm for computing the hash.</summary>
+            <param name="array">The input data. </param>
+            <param name="ibStart">The offset into the byte array from which to begin using data. </param>
+            <param name="cbSize">The number of bytes in the array to use as data. </param>
+        </member>
+        <member name="T:Enyim.FNV1">
+            <summary>
+            Implements an FNV1 hash algorithm.
+            </summary>
+        </member>
+        <member name="F:Enyim.FNV1.CurrentHashValue">
+            <summary>
+            The current hash value.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV1.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:FNV1a"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV1.Initialize">
+            <summary>
+            Initializes an instance of <see cref="T:FNV1a"/>.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV1.HashCore(System.Byte[],System.Int32,System.Int32)">
+            <summary>Routes data written to the object into the <see cref="T:FNV1a" /> hash algorithm for computing the hash.</summary>
+            <param name="array">The input data. </param>
+            <param name="ibStart">The offset into the byte array from which to begin using data. </param>
+            <param name="cbSize">The number of bytes in the array to use as data. </param>
+        </member>
+        <member name="M:Enyim.FNV1.HashFinal">
+            <summary>
+            Returns the computed <see cref="T:FNV1a" /> hash value after all data has been written to the object.
+            </summary>
+            <returns>The computed hash code.</returns>
+        </member>
+        <member name="T:Enyim.FNV1a">
+            <summary>
+            Implements an FNV1a hash algorithm.
+            </summary>
+        </member>
+        <member name="M:Enyim.FNV1a.HashCore(System.Byte[],System.Int32,System.Int32)">
+            <summary>Routes data written to the object into the <see cref="T:FNV1a" /> hash algorithm for computing the hash.</summary>
+            <param name="array">The input data. </param>
+            <param name="ibStart">The offset into the byte array from which to begin using data. </param>
+            <param name="cbSize">The number of bytes in the array to use as data. </param>
+        </member>
+        <member name="T:Enyim.ModifiedFNV">
+            <summary>
+            Implements a modified FNV hash. Provides better distribution than FNV1 but it's only 32 bit long.
+            </summary>
+            <remarks>Algorithm found at http://bretm.home.comcast.net/hash/6.html</remarks>
+        </member>
+        <member name="M:Enyim.ModifiedFNV.HashFinal">
+            <summary>
+            Returns the computed <see cref="T:ModifiedFNV" /> hash value after all data has been written to the object.
+            </summary>
+            <returns>The computed hash code.</returns>
+        </member>
+        <member name="T:Enyim.Caching.NullLoggerFactory">
+            <summary>
+            Creates an empty logger. Used when no other factories are installed.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.MemcachedClient">
+            <summary>
+            Memcached client.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.IMemcachedResultsClient">
+            <summary>
+            Interface for API methods that return detailed operation results
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.MemcachedClient.Infinite">
+            <summary>
+            Represents a value which indicates that an item should never expire.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.#ctor">
+            <summary>
+            Initializes a new MemcachedClient instance using the default configuration section (enyim/memcached).
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.#ctor(System.String)">
+            <summary>
+            Initializes a new MemcachedClient instance using the specified configuration section. 
+            This overload allows to create multiple MemcachedClients with different pool configurations.
+            </summary>
+            <param name="sectionName">The name of the configuration section to be used for configuring the behavior of the client.</param>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.#ctor(Enyim.Caching.Configuration.IMemcachedClientConfiguration)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClient"/> using the specified configuration instance.
+            </summary>
+            <param name="configuration">The client configuration.</param>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Get(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>The retrieved item, or <value>null</value> if the key was not found.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Get``1(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>The retrieved item, or <value>default(T)</value> if the key was not found.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.TryGet(System.String,System.Object@)">
+            <summary>
+            Tries to get an item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <param name="value">The retrieved item or null if not found.</param>
+            <returns>The <value>true</value> if the item was successfully retrieved.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Store(Enyim.Caching.Memcached.StoreMode,System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Store(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.TimeSpan)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Store(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.DateTime)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Cas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Cas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.TimeSpan,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Cas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.DateTime,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Cas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure. The text protocol does not support this operation, you need to Store then GetWithCas.</remarks>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64,System.TimeSpan)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64,System.DateTime)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64,System.TimeSpan,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Increment(System.String,System.UInt64,System.UInt64,System.DateTime,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64,System.TimeSpan)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64,System.DateTime)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64,System.TimeSpan,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Decrement(System.String,System.UInt64,System.UInt64,System.DateTime,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Append(System.String,System.ArraySegment{System.Byte})">
+            <summary>
+            Appends the data to the end of the specified item's data on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="data">The data to be appended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Prepend(System.String,System.ArraySegment{System.Byte})">
+            <summary>
+            Inserts the data before the specified item's data on the server.
+            </summary>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Append(System.String,System.UInt64,System.ArraySegment{System.Byte})">
+            <summary>
+            Appends the data to the end of the specified item's data on the server, but only if the item's version matches the CAS value provided.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <param name="data">The data to be prepended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Prepend(System.String,System.UInt64,System.ArraySegment{System.Byte})">
+            <summary>
+            Inserts the data before the specified item's data on the server, but only if the item's version matches the CAS value provided.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <param name="data">The data to be prepended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.FlushAll">
+            <summary>
+            Removes all data from the cache. Note: this will invalidate all data on all servers in the pool.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Stats">
+            <summary>
+            Returns statistics about the servers.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Remove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>true if the item was successfully removed from the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Get(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>a Dictionary holding all items indexed by their key.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.SafeWaitAllAndDispose(System.Threading.WaitHandle[])">
+            <summary>
+            Waits for all WaitHandles and works in both STA and MTA mode.
+            </summary>
+            <param name="waitHandles"></param>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.Dispose">
+            <summary>
+            Releases all resources allocated by this instance
+            </summary>
+            <remarks>You should only call this when you are not using static instances of the client, so it can close all conections and release the sockets.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteStore(Enyim.Caching.Memcached.StoreMode,System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteStore(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.TimeSpan)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteStore(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.DateTime)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>true if the item was successfully stored in the cache; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteCas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure. The text protocol does not support this operation, you need to Store then GetWithCas.</remarks>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteCas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <remarks>The item does not expire unless it is removed due memory pressure.</remarks>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteCas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.TimeSpan,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteCas(Enyim.Caching.Memcached.StoreMode,System.String,System.Object,System.DateTime,System.UInt64)">
+            <summary>
+            Inserts an item into the cache with a cache key to reference its location and returns its version.
+            </summary>
+            <param name="mode">Defines how the item is stored in the cache.</param>
+            <param name="key">The key used to reference the item.</param>
+            <param name="value">The object to be inserted into the cache.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>A CasResult object containing the version of the item and the result of the operation (true if the item was successfully stored in the cache; false otherwise).</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteGet(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>The retrieved item, or <value>null</value> if the key was not found.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteTryGet(System.String,System.Object@)">
+            <summary>
+            Tries to get an item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <param name="value">The retrieved item or null if not found.</param>
+            <returns>The <value>true</value> if the item was successfully retrieved.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteGet``1(System.String)">
+            <summary>
+            Retrieves the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to retrieve.</param>
+            <returns>The retrieved item, or <value>default(T)</value> if the key was not found.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteGet(System.Collections.Generic.IEnumerable{System.String})">
+            <summary>
+            Retrieves multiple items from the cache.
+            </summary>
+            <param name="keys">The list of identifiers for the items to retrieve.</param>
+            <returns>a Dictionary holding all items indexed by their key.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64,System.TimeSpan)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64,System.DateTime)">
+            <summary>
+            Increments the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64,System.TimeSpan,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteIncrement(System.String,System.UInt64,System.UInt64,System.DateTime,System.UInt64)">
+            <summary>
+            Increments the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to increase the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64,System.TimeSpan)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64,System.DateTime)">
+            <summary>
+            Decrements the value of the specified key by the given amount. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64,System.TimeSpan,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="validFor">The interval after the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteDecrement(System.String,System.UInt64,System.UInt64,System.DateTime,System.UInt64)">
+            <summary>
+            Decrements the value of the specified key by the given amount, but only if the item's version matches the CAS value provided. The operation is atomic and happens on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="defaultValue">The value which will be stored by the server if the specified item was not found.</param>
+            <param name="delta">The amount by which the client wants to decrease the item.</param>
+            <param name="expiresAt">The time when the item is invalidated in the cache.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <returns>The new value of the item or defaultValue if the key was not found.</returns>
+            <remarks>If the client uses the Text protocol, the item must be inserted into the cache before it can be changed. It must be inserted as a <see cref="T:System.String"/>. Moreover the Text protocol only works with <see cref="T:System.UInt32"/> values, so return value -1 always indicates that the item was not found.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteAppend(System.String,System.ArraySegment{System.Byte})">
+            <summary>
+            Appends the data to the end of the specified item's data on the server.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="data">The data to be appended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteAppend(System.String,System.UInt64,System.ArraySegment{System.Byte})">
+            <summary>
+            Appends the data to the end of the specified item's data on the server, but only if the item's version matches the CAS value provided.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <param name="data">The data to be prepended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecutePrepend(System.String,System.ArraySegment{System.Byte})">
+            <summary>
+            Inserts the data before the specified item's data on the server.
+            </summary>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecutePrepend(System.String,System.UInt64,System.ArraySegment{System.Byte})">
+            <summary>
+            Inserts the data before the specified item's data on the server, but only if the item's version matches the CAS value provided.
+            </summary>
+            <param name="key">The key used to reference the item.</param>
+            <param name="cas">The cas value which must match the item's version.</param>
+            <param name="data">The data to be prepended to the item.</param>
+            <returns>true if the data was successfully stored; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.MemcachedClient.ExecuteRemove(System.String)">
+            <summary>
+            Removes the specified item from the cache.
+            </summary>
+            <param name="key">The identifier for the item to delete.</param>
+            <returns>true if the item was successfully removed from the cache; false otherwise.</returns>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.PooledSocket.InstanceId">
+            <summary>
+            The ID of this instance. Used by the <see cref="T:MemcachedServer"/> to identify the instance in its inner lists.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.Destroy">
+            <summary>
+            Releases all resources used by this instance and shuts down the inner <see cref="T:Socket"/>. This instance will not be usable anymore.
+            </summary>
+            <remarks>Use the IDisposable.Dispose method if you want to release this instance back into the pool.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.ReadByte">
+            <summary>
+            Reads the next byte from the server's response.
+            </summary>
+            <remarks>This method blocks and will not return until the value is read.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.Read(System.Byte[],System.Int32,System.Int32)">
+            <summary>
+            Reads data from the server into the specified buffer.
+            </summary>
+            <param name="buffer">An array of <see cref="T:System.Byte"/> that is the storage location for the received data.</param>
+            <param name="offset">The location in buffer to store the received data.</param>
+            <param name="count">The number of bytes to read.</param>
+            <remarks>This method blocks and will not return until the specified amount of bytes are read.</remarks>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.ReceiveAsync(Enyim.Caching.Memcached.AsyncIOArgs)">
+            <summary>
+            Receives data asynchronously. Returns true if the IO is pending. Returns false if the socket already failed or the data was available in the buffer.
+            p.Next will only be called if the call completes asynchronously.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper">
+            <summary>
+            Supports exactly one reader and writer, but they can do IO concurrently
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.Read(Enyim.Caching.Memcached.AsyncIOArgs)">
+            <summary>
+            returns true if io is pending
+            </summary>
+            <param name="p"></param>
+            <returns></returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.PooledSocket.AsyncSocketHelper.EndReceive">
+            <summary>
+            returns true when io is pending
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.PlainTextAuthenticator">
+            <summary>
+            Implements the default plain text ("PLAIN") Memcached authentication.
+            </summary>
+            <remarks>Either use the parametrized constructor, or pass the "userName" and "password" parameters during initalization.</remarks>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.ISaslAuthenticationProvider">
+            <summary>
+            Provides the base interface for Memcached SASL authentication.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.CommandNotSupportedException">
+            <summary>
+            The exception that is thrown when a command is not supported by the Memcached server.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.MemcachedClientException">
+            <summary>
+            The exception that is thrown when a client error occures during communicating with the Memcached servers.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.MemcachedException">
+            <summary>
+            The exception that is thrown when an unknown error occures in the <see cref="T:MemcachedClient"/>
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedException.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedException"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedException.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedException"/> class with a specified error message.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedException.#ctor(System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedException"/> class with serialized data.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedClientException.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClientException"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedClientException.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClientException"/> class with a specified error message.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedClientException.#ctor(System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClientException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedClientException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the <see cref="T:MemcachedClientException"/> class with serialized data.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.CommandNotSupportedException.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:CommandNotSupportedException"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.CommandNotSupportedException.#ctor(System.String)">
+            <summary>
+            Initializes a new instance of the <see cref="T:CommandNotSupportedException"/> class with a specified error message.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.CommandNotSupportedException.#ctor(System.String,System.Exception)">
+            <summary>
+            Initializes a new instance of the <see cref="T:CommandNotSupportedException"/> class with a specified error message and a reference to the inner exception that is the cause of this exception.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.CommandNotSupportedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+            <summary>
+            Initializes a new instance of the <see cref="T:CommandNotSupportedException"/> class with serialized data.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.IServerPool">
+            <summary>
+            Provides custom server pool implementations
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.IMemcachedKeyTransformer">
+            <summary>
+            Converts Memcached item keys into a custom format.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.IMemcachedKeyTransformer.Transform(System.String)">
+            <summary>
+            Performs the transformation.
+            </summary>
+            <param name="key">The key to be transformed.</param>
+            <returns>the transformed key.</returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.IMemcachedNodeLocator">
+            <summary>
+            Defines a locator class which maps item keys to memcached servers.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.IMemcachedNodeLocator.Initialize(System.Collections.Generic.IList{Enyim.Caching.Memcached.IMemcachedNode})">
+            <summary>
+            Initializes the locator.
+            </summary>
+            <param name="nodes">The memcached nodes defined in the configuration.</param>
+            <remarks>This called first when the server pool is initialized, and subsequently every time 
+            when a node goes down or comes back. If your locator has its own logic to deal with dead nodes 
+            then ignore all calls but the first. Otherwise make sure that your implementation can handle 
+            simultaneous calls to Initialize and Locate in a thread safe manner.</remarks>
+            <seealso cref="T:DefaultNodeLocator"/>
+            <seealso cref="T:KetamaNodeLocator"/>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.IMemcachedNodeLocator.Locate(System.String)">
+            <summary>
+            Returns the memcached node the specified key belongs to.
+            </summary>
+            <param name="key">The key of the item to be located.</param>
+            <returns>The <see cref="T:MemcachedNode"/> the specifed item belongs to</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.IMemcachedNodeLocator.GetWorkingNodes">
+            <summary>
+            Returns all the working nodes currently available to the locator.
+            </summary>
+            <remarks>It should return an instance which is safe to enumerate multiple times and provides the same results every time.</remarks>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Base64KeyTransformer">
+            <summary>
+            A key transformer which converts the item keys into Base64.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.SHA1KeyTransformer">
+            <summary>
+            A key transformer which converts the item keys into their SHA1 hash.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.TigerHashKeyTransformer">
+            <summary>
+            A key transformer which converts the item keys into their Tiger hash.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.KetamaNodeLocatorFactory">
+            <summary>
+            Implements Ketama cosistent hashing, compatible with the "spymemcached" Java client
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.DefaultNodeLocator">
+            <summary>
+            This is a ketama-like consistent hashing based node locator. Used when no other <see cref="T:IMemcachedNodeLocator"/> is specified for the pool.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.DefaultNodeLocator.FindNode(System.String)">
+            <summary>
+            locates a node by its key
+            </summary>
+            <param name="key"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.KetamaNodeLocator">
+            <summary>
+            Implements Ketama cosistent hashing, compatible with the "spymemcached" Java client
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.KetamaNodeLocator.#ctor">
+            <summary>
+            Initialized a new instance of the <see cref="T:Enyim.Caching.Memcached.KetamaNodeLocator"/> using the default hash algorithm.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.KetamaNodeLocator.#ctor(System.String)">
+            <summary>
+            Initialized a new instance of the <see cref="T:Enyim.Caching.Memcached.KetamaNodeLocator"/> using a custom hash algorithm.
+            </summary>
+            <param name="hashName">The name of the hash algorithm to use.
+            <list type="table">
+            <listheader><term>Name</term><description>Description</description></listheader>
+            <item><term>md5</term><description>Equivalent of System.Security.Cryptography.MD5</description></item>
+            <item><term>sha1</term><description>Equivalent of System.Security.Cryptography.SHA1</description></item>
+            <item><term>tiger</term><description>Tiger Hash</description></item>
+            <item><term>crc</term><description>CRC32</description></item>
+            <item><term>fnv1_32</term><description>FNV Hash 32bit</description></item>
+            <item><term>fnv1_64</term><description>FNV Hash 64bit</description></item>
+            <item><term>fnv1a_32</term><description>Modified FNV Hash 32bit</description></item>
+            <item><term>fnv1a_64</term><description>Modified FNV Hash 64bit</description></item>
+            <item><term>murmur</term><description>Murmur Hash</description></item>
+            <item><term>oneatatime</term><description>Jenkin's "One at A time Hash"</description></item>
+            </list>
+            </param>
+            <remarks>If the hashName does not match any of the item on the list it will be passed to HashAlgorithm.Create.</remarks>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.KetamaNodeLocator.LookupData">
+            <summary>
+            this will encapsulate all the indexes we need for lookup
+            so the instance can be reinitialized without locking
+            in case an IMemcachedConfig implementation returns the same instance form the CreateLocator()
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.SingleNodeLocator">
+            <summary>
+            This is a simple node locator with no computation overhead, always returns the first server from the list. Use only in single server deployments.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.VBucketNodeLocator">
+            <summary>
+            Implements a vbucket based node locator.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.VBucketNodeLocatorFactory">
+            <summary>
+            Factory for the vbucket based locator.
+            </summary>
+            <remarks>You need to use this in the configuration file because this is the only way pass parameters to the VBucketNodeLocator.
+            
+            	<locator factory="Enyim.Caching.Memcached.VBucketNodeLocatorFactory" configFile="vbucket.json" />
+            
+            </remarks>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.MemcachedNode">
+            <summary>
+            Represents a Memcached node in the pool.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.Ping">
+            <summary>
+            Gets a value indicating whether the server is working or not.
+            
+            If the server is back online, we'll ercreate the internal socket pool and mark the server as alive so operations can target it.
+            </summary>
+            <returns>true if the server is alive; false otherwise.</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.Acquire">
+            <summary>
+            Acquires a new item from the pool
+            </summary>
+            <returns>An <see cref="T:PooledSocket"/> instance which is connected to the memcached server, or <value>null</value> if the pool is dead.</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.Dispose">
+            <summary>
+            Releases all resources allocated by this instance
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.MemcachedNode.EndPoint">
+            <summary>
+            Gets the <see cref="T:IPEndPoint"/> of this instance
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.MemcachedNode.IsAlive">
+            <summary>
+            <para>Gets a value indicating whether the server is working or not. Returns a <b>cached</b> state.</para>
+            <para>To get real-time information and update the cached state, use the <see cref="M:Ping"/> method.</para>
+            </summary>
+            <remarks>Used by the <see cref="T:ServerPool"/> to quickly check if the server's state is valid.</remarks>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.freeItems">
+            <summary>
+            A list of already connected but free to use sockets
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.Acquire">
+            <summary>
+            Acquires a new item from the pool
+            </summary>
+            <returns>An <see cref="T:PooledSocket"/> instance which is connected to the memcached server, or <value>null</value> if the pool is dead.</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.ReleaseSocket(Enyim.Caching.Memcached.PooledSocket)">
+            <summary>
+            Releases an item back into the pool
+            </summary>
+            <param name="socket"></param>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.MemcachedNode.InternalPoolImpl.Dispose">
+            <summary>
+            Releases all resources allocated by this instance
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.IOperation.ReadResponseAsync(Enyim.Caching.Memcached.PooledSocket,System.Action{System.Boolean})">
+            <summary>
+            'next' is called when the operation completes. The bool parameter indicates the success of the operation.
+            </summary>
+            <param name="socket"></param>
+            <param name="next"></param>
+            <returns></returns>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.ISingleItemOperation.CasValue">
+            <summary>
+            The CAS value returned by the server after executing the command.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.MultiItemOperation">
+            <summary>
+            Base class for implementing operations working with multiple items.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Operation">
+            <summary>
+            Base class for implementing operations.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.BinaryNode">
+            <summary>
+            A node which is used by the BinaryPool. It implements the binary protocol's SASL auth. mechanism.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Binary.BinaryNode.CreateSocket">
+            <summary>
+            Authenticates the new socket before it is put into the pool.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Binary.BinaryNode.Auth(Enyim.Caching.Memcached.PooledSocket)">
+            <summary>
+            Implements memcached's SASL auth sequence. (See the protocol docs for more details.)
+            </summary>
+            <param name="socket"></param>
+            <returns></returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.BinaryOperationFactory">
+            <summary>
+            Memcached client.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.BinaryPool">
+            <summary>
+            Server pool implementing the binary protocol.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Binary.BinaryResponse.ReadAsync(Enyim.Caching.Memcached.PooledSocket,System.Action{System.Boolean},System.Boolean@)">
+            <summary>
+            Reads the response from the socket asynchronously.
+            </summary>
+            <param name="socket">The socket to read from.</param>
+            <param name="next">The delegate whihc will continue processing the response. This is only called if the read completes asynchronoulsy.</param>
+            <param name="ioPending">Set totrue if the read is still pending when ReadASync returns. In this case 'next' will be called when the read is finished.</param>
+            <returns>
+            If the socket is already dead, ReadAsync returns false, next is not called, ioPending = false
+            If the read completes synchronously (e.g. data is received from the buffer), it returns true/false depending on the StatusCode, and ioPending is set to true, 'next' will not be called.
+            It returns true if it has to read from the socket, so the operation will complate asynchronously at a later time. ioPending will be true, and 'next' will be called to handle the data
+            </returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.SingleItemOperation">
+            <summary>
+            Base class for implementing operations working with keyed items.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Protocol.SingleItemOperation.Enyim#Caching#Memcached#ISingleItemOperation#Key">
+            <summary>
+            The item key of the current operation.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.ConcatOperation">
+            <summary>
+            Implements append/prepend.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.SaslContinue">
+            <summary>
+            SASL auth step.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.Protocol.Binary.SaslStart">
+            <summary>
+            Starts the SASL auth sequence.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Text.TextSocketHelper.ReadResponse(Enyim.Caching.Memcached.PooledSocket)">
+            <summary>
+            Reads the response of the server.
+            </summary>
+            <returns>The data sent by the memcached server.</returns>
+            <exception cref="T:System.InvalidOperationException">The server did not sent a response or an empty line was returned.</exception>
+            <exception cref="T:Enyim.Caching.Memcached.MemcachedException">The server did not specified any reason just returned the string ERROR. - or - The server returned a SERVER_ERROR, in this case the Message of the exception is the message returned by the server.</exception>
+            <exception cref="T:Enyim.Caching.Memcached.MemcachedClientException">The server did not recognize the request sent by the client. The Message of the exception is the message returned by the server.</exception>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Text.TextSocketHelper.ReadLine(Enyim.Caching.Memcached.PooledSocket)">
+            <summary>
+            Reads a line from the socket. A line is terninated by \r\n.
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Protocol.Text.TextSocketHelper.GetCommandBuffer(System.String)">
+            <summary>
+            Gets the bytes representing the specified command. returned buffer can be used to streamline multiple writes into one Write on the Socket
+            using the <see cref="M:Enyim.Caching.Memcached.PooledSocket.Write(IList&lt;ArraySegment&lt;byte&gt;&gt;)"/>
+            </summary>
+            <param name="value">The command to be converted.</param>
+            <returns>The buffer containing the bytes representing the command. The command must be terminated by \r\n.</returns>
+            <remarks>The Nagle algorithm is disabled on the socket to speed things up, so it's recommended to convert a command into a buffer
+            and use the <see cref="M:Enyim.Caching.Memcached.PooledSocket.Write(IList&lt;ArraySegment&lt;byte&gt;&gt;)"/> to send the command and the additional buffers in one transaction.</remarks>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Results.IOperationResult.Success">
+            <summary>
+            A value indicating whether an operation was successful
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Results.IOperationResult.Message">
+            <summary>
+            A message indicating success, warning or failure reason for an operation
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Results.IOperationResult.Exception">
+            <summary>
+            An exception that caused a failure
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Results.IOperationResult.StatusCode">
+            <summary>
+            The StatusCode returned from the server
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.Results.IOperationResult.InnerResult">
+            <summary>
+            A result that influenced the current result
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Results.Extensions.OperationResultExtensions.Fail(Enyim.Caching.Memcached.Results.IOperationResult,System.String,System.Exception)">
+            <summary>
+            Set the result Success to false
+            </summary>
+            <param name="source">Result to update</param>
+            <param name="message">Message indicating source of failure</param>
+            <param name="ex">Exception causing failure</param>
+            <returns>Updated source</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Results.Extensions.OperationResultExtensions.Pass(Enyim.Caching.Memcached.Results.IOperationResult,System.String)">
+            <summary>
+            Set the result Success to true
+            </summary>
+            <param name="source">Result to update</param>
+            <param name="message">Message indicating a possible warning</param>
+            <returns>Updated source</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Results.Extensions.OperationResultExtensions.Copy(Enyim.Caching.Memcached.Results.IOperationResult,Enyim.Caching.Memcached.Results.IOperationResult)">
+            <summary>
+            Copy properties from one IOperationResult to another.  Does not use reflection.
+            Ony LCD properties are copied
+            </summary>
+            <param name="target"></param>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Results.Extensions.OperationResultExtensions.PassOrFail(Enyim.Caching.Memcached.Results.IOperationResult,System.Boolean,System.String,System.Exception)">
+            <summary>
+            Copy properties from one IOperationResult to another.  Does not use reflection.
+            Ony LCD properties are copied
+            </summary>
+            <param name="target"></param>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.Results.Extensions.OperationResultExtensions.Combine(Enyim.Caching.Memcached.Results.IOperationResult,Enyim.Caching.Memcached.Results.IOperationResult)">
+            <summary>
+            Combine will attempt to minimize the depth of InnerResults and maintain status codes
+            </summary>
+            <param name="target"></param>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.ServerStats">
+            <summary>
+            Represents the statistics of a Memcached node.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.ServerStats.All">
+            <summary>
+            Defines a value which indicates that the statstics should be retrieved for all servers in the pool.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ServerStats.GetValue(System.Net.IPEndPoint,Enyim.Caching.Memcached.StatItem)">
+            <summary>
+            Gets a stat value for the specified server.
+            </summary>
+            <param name="server">The adress of the server. If <see cref="F:System.Net.IPAddress.Any"/> is specified it will return the sum of all server stat values.</param>
+            <param name="item">The stat to be returned</param>
+            <returns>The value of the specified stat item</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ServerStats.GetVersion(System.Net.IPEndPoint)">
+            <summary>
+            Returns the server of memcached running on the specified server.
+            </summary>
+            <param name="server">The adress of the server</param>
+            <returns>The version of memcached</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ServerStats.GetUptime(System.Net.IPEndPoint)">
+            <summary>
+            Returns the uptime of the specific server.
+            </summary>
+            <param name="server">The adress of the server</param>
+            <returns>A value indicating how long the server is running</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ServerStats.GetRaw(System.Net.IPEndPoint,System.String)">
+            <summary>
+            Returns the stat value for a specific server. The value is not converted but returned as the server returned it.
+            </summary>
+            <param name="server">The adress of the server</param>
+            <param name="key">The name of the stat value</param>
+            <returns>The value of the stat item</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ServerStats.GetRaw(System.Net.IPEndPoint,Enyim.Caching.Memcached.StatItem)">
+            <summary>
+            Returns the stat value for a specific server. The value is not converted but returned as the server returned it.
+            </summary>
+            <param name="server">The adress of the server</param>
+            <param name="item">The stat value to be returned</param>
+            <returns>The value of the stat item</returns>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.SlidingBuffer">
+            <summary>
+            Supports exactly one reader and writer, but they can access the buffer concurrently.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.StatItem">
+            <summary>
+            Represent a stat item returned by Memcached.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.Uptime">
+            <summary>
+            The number of seconds the server has been running.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.ServerTime">
+            <summary>
+            Current time according to the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.Version">
+            <summary>
+            The version of the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.ItemCount">
+            <summary>
+            The number of items stored by the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.TotalItems">
+            <summary>
+            The total number of items stored by the server including the ones whihc have been already evicted.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.ConnectionCount">
+            <summary>
+            Number of active connections to the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.TotalConnections">
+            <summary>
+            The total number of connections ever made to the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.ConnectionStructures">
+            <summary>
+            ?
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.GetCount">
+            <summary>
+            Number of get operations performed by the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.SetCount">
+            <summary>
+            Number of set operations performed by the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.GetHits">
+            <summary>
+            Cache hit.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.GetMisses">
+            <summary>
+            Cache miss.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.UsedBytes">
+            <summary>
+            ?
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.BytesRead">
+            <summary>
+            Number of bytes read from the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.BytesWritten">
+            <summary>
+            Number of bytes written to the server.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StatItem.MaxBytes">
+            <summary>
+            ?
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.StoreMode">
+            <summary>
+            Inidicates the mode how the items are stored in Memcached.
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreMode.Add">
+            <summary>
+            Store the data, but only if the server does not already hold data for a given key
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreMode.Replace">
+            <summary>
+            Store the data, but only if the server does already hold data for a given key
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreMode.Set">
+            <summary>
+            Store the data, overwrite if already exist
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.Add">
+            <summary>
+            Store the data, but only if the server does not already hold data for a given key
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.Replace">
+            <summary>
+            Store the data, but only if the server does already hold data for a given key
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.Set">
+            <summary>
+            Store the data, overwrite if already exist
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.Append">
+            <summary>
+            Appends the data to an existing key's data
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.Prepend">
+            <summary>
+            Inserts the data before an existing key's data
+            </summary>
+        </member>
+        <member name="F:Enyim.Caching.Memcached.StoreCommand.CheckAndSet">
+            <summary>
+            Stores the data only if it has not been updated by someone else. Uses a "transaction id" to check for modification.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.CacheItem">
+            <summary>
+            Represents an object either being retrieved from the cache
+            or being sent to the cache.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.CacheItem.#ctor(System.UInt32,System.ArraySegment{System.Byte})">
+            <summary>
+            Initializes a new instance of <see cref="T:CacheItem"/>.
+            </summary>
+            <param name="flags">Custom item data.</param>
+            <param name="data">The serialized item.</param>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.CacheItem.Data">
+            <summary>
+            The data representing the item being stored/retireved.
+            </summary>
+        </member>
+        <member name="P:Enyim.Caching.Memcached.CacheItem.Flags">
+            <summary>
+            Flags set for this instance.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.DataContractTranscoder">
+            <summary>
+            Default <see cref="T:Enyim.Caching.Memcached.ITranscoder"/> implementation. Primitive types are manually serialized, the rest is serialized using <see cref="T:System.Runtime.Serialization.NetDataContractSerializer"/>.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.DefaultTranscoder">
+            <summary>
+            Default <see cref="T:Enyim.Caching.Memcached.ITranscoder"/> implementation. Primitive types are manually serialized, the rest is serialized using <see cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter"/>.
+            </summary>
+        </member>
+        <member name="T:Enyim.Caching.Memcached.ITranscoder">
+            <summary>
+            Provides an interface for serializing items for Memcached.
+            </summary>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ITranscoder.Serialize(System.Object)">
+            <summary>
+            Serializes an object for storing in the cache.
+            </summary>
+            <param name="value">The object to serialize</param>
+            <returns>The serialized object</returns>
+        </member>
+        <member name="M:Enyim.Caching.Memcached.ITranscoder.Deserialize(Enyim.Caching.Memcached.CacheItem)">
+            <summary>
+            Deserializes the <see cref="T:CacheItem"/> into an object.
+            </summary>
+            <param name="item">The stream that contains the data to deserialize.</param>
+            <returns>The deserialized object</returns>
+        </member>
+        <member name="T:Enyim.TigerHash">
+            <summary>
+            Implements the Tiger hash. (http://www.cs.technion.ac.il/~biham/Reports/Tiger/)
+            
+            Ported (and cleaned&amp;sped up) from the Tiger.NET VB code. (http://www.hotpixel.net/software.html)
+            </summary>
+        </member>
+        <member name="M:Enyim.TigerHash.#ctor">
+            <summary>
+            Initializes a new instance of the <see cref="T:TigerHash"/> class.
+            </summary>
+        </member>
+        <member name="M:Enyim.TigerHash.Initialize">
+            <summary>
+            Initializes an instance of <see cref="T:TigerHash"/>.
+            </summary>
+        </member>
+        <member name="M:Enyim.TigerHash.HashCore(System.Byte[],System.Int32,System.Int32)">
+            <summary>Routes data written to the object into the <see cref="T:TigerHash" /> hash algorithm for computing the hash.</summary>
+            <param name="array">The input data. </param>
+            <param name="ibStart">The offset into the byte array from which to begin using data. </param>
+            <param name="cbSize">The number of bytes in the array to use as data. </param>
+        </member>
+        <member name="M:Enyim.TigerHash.HashFinal">
+            <summary>
+            Returns the computed <see cref="T:TigerHash" /> hash value after all data has been written to the object.
+            </summary>
+            <returns>The computed hash code.</returns>
+        </member>
+        <member name="T:Enyim.Caching.UIntEqualityComparer">
+            <summary>
+            A fast comparer for dictionaries indexed by UInt. Faster than using Comparer.Default
+            </summary>
+        </member>
+    </members>
+</doc>

BIN
servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/ServiceStack.Caching.AwsDynamoDb.3.9.55.nupkg


+ 24 - 0
servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/ServiceStack.Caching.AwsDynamoDb.3.9.55.nuspec

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Caching.AwsDynamoDb</id>
+    <version>3.9.55</version>
+    <title>ServiceStack.Caching.AwsDynamoDb</title>
+    <authors>ServiceStack contributors</authors>
+    <owners>ServiceStack contributors</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.OrmLite</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>An Amazon Web Services In-Memory DynamoDb DataCache implementing ServiceStack's ICacheClient:
+        https://github.com/ServiceStack/ServiceStack/wiki/Caching</description>
+    <releaseNotes />
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>ServiceStack Caching AwsDynamoDb Amazon WebServices AWS DynamoDb Cache CacheClient</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+      <dependency id="AWSSDK" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/lib/ServiceStack.CacheAccess.AwsDynamoDb.dll


BIN
servicestack/lib/ServiceStack.Caching.AwsDynamoDb.3.9.55/lib/ServiceStack.CacheAccess.AwsDynamoDb.pdb


BIN
servicestack/lib/ServiceStack.Caching.Azure.3.9.55/ServiceStack.Caching.Azure.3.9.55.nupkg


+ 24 - 0
servicestack/lib/ServiceStack.Caching.Azure.3.9.55/ServiceStack.Caching.Azure.3.9.55.nuspec

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Caching.Azure</id>
+    <version>3.9.55</version>
+    <title>ServiceStack.Caching.Azure</title>
+    <authors>Manuel Nelson,  ServiceStack contributors</authors>
+    <owners>Manuel Nelson,  ServiceStack contributors</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.OrmLite</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>An Azure In-Memory DataCache implementing ServiceStack's ICacheClient:
+        https://github.com/ServiceStack/ServiceStack/wiki/Caching</description>
+    <releaseNotes />
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>ServiceStack Caching Windows Azure Cache CacheClient POCO Code-First</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+      <dependency id="WindowsAzure.Caching" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.dll


+ 25 - 0
servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.dll.config

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <configSections>
+    <!-- Append below entry to configSections. Do not overwrite the full section. -->
+    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
+  </configSections>
+  <dataCacheClients>
+    <dataCacheClient name="default">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22233" />
+      </hosts>
+      <securityProperties mode="Message">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+    <dataCacheClient name="SslEndpoint">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22243" />
+      </hosts>
+      <securityProperties mode="Message" sslEnabled="true">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+  </dataCacheClients>
+</configuration>

BIN
servicestack/lib/ServiceStack.Caching.Azure.3.9.55/lib/ServiceStack.CacheAccess.Azure.pdb


BIN
servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/ServiceStack.Caching.Memcached.3.9.55.nupkg


+ 24 - 0
servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/ServiceStack.Caching.Memcached.3.9.55.nuspec

@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
+  <metadata>
+    <id>ServiceStack.Caching.Memcached</id>
+    <version>3.9.55</version>
+    <title>ServiceStack.Caching.Memcached</title>
+    <authors>Demis Bellot,  Thomas Grassauer and ServiceStack contributors</authors>
+    <owners>Demis Bellot,  Thomas Grassauer and ServiceStack contributors</owners>
+    <licenseUrl>https://github.com/ServiceStack/ServiceStack/blob/master/LICENSE</licenseUrl>
+    <projectUrl>https://github.com/ServiceStack/ServiceStack.OrmLite</projectUrl>
+    <iconUrl>http://www.servicestack.net/logo-100x100.png</iconUrl>
+    <requireLicenseAcceptance>false</requireLicenseAcceptance>
+    <description>An Memcached cache client implementing ServiceStack's ICacheClient:
+        https://github.com/ServiceStack/ServiceStack/wiki/Caching</description>
+    <releaseNotes />
+    <copyright>ServiceStack 2013 and contributors</copyright>
+    <language>en-US</language>
+    <tags>ServiceStack Caching Memcached Cache CacheClient POCO Code-First</tags>
+    <dependencies>
+      <dependency id="ServiceStack.Common" />
+      <dependency id="EnyimMemcached" version="2.12.0" />
+    </dependencies>
+  </metadata>
+</package>

BIN
servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/lib/ServiceStack.CacheAccess.Memcached.dll


BIN
servicestack/lib/ServiceStack.Caching.Memcached.3.9.55/lib/ServiceStack.CacheAccess.Memcached.pdb


+ 1 - 0
servicestack/lib/ServiceStack.OrmLite.MySql.3.9.57/ServiceStack.OrmLite.MySql.3.9.57.nuspec

@@ -12,6 +12,7 @@
     <requireLicenseAcceptance>false</requireLicenseAcceptance>
     <description>Light, simple and fast convention-based code-first POCO ORM for MySQL. 
 		Support for Creating and Dropping Table Schemas from POCOs, Complex Property types transparently stored in schemaless text blobs in MySQL.</description>
+    <releaseNotes />
     <copyright>ServiceStack 2013 and contributors</copyright>
     <language>en-US</language>
     <tags>MySql OrmLite POCO Code-First Orm Schema-less Blobs</tags>

BIN
servicestack/lib/ServiceStack.Redis.3.9.56/ServiceStack.Redis.3.9.56.nupkg


BIN
servicestack/lib/ServiceStack.Redis.3.9.56/lib/net35/ServiceStack.Redis.dll


BIN
servicestack/lib/ServiceStack.Redis.3.9.57/ServiceStack.Redis.3.9.57.nupkg


+ 2 - 1
servicestack/lib/ServiceStack.Redis.3.9.56/ServiceStack.Redis.3.9.56.nuspec → servicestack/lib/ServiceStack.Redis.3.9.57/ServiceStack.Redis.3.9.57.nuspec

@@ -2,7 +2,7 @@
 <package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
   <metadata>
     <id>ServiceStack.Redis</id>
-    <version>3.9.56</version>
+    <version>3.9.57</version>
     <title>C# Redis client for the Redis NoSQL DB</title>
     <authors>Demis Bellot</authors>
     <owners>Demis Bellot</owners>
@@ -12,6 +12,7 @@
     <requireLicenseAcceptance>false</requireLicenseAcceptance>
     <description>C# Redis Client for the worlds fastest distributed NoSQL datastore. Byte[], String and POCO Typed clients.
       Thread-Safe Basic and Pooled client managers included.</description>
+    <releaseNotes />
     <copyright>ServiceStack 2013 and contributors</copyright>
     <language>en-US</language>
     <tags>Redis NoSQL Client Distributed Cache PubSub Messaging Transactions</tags>

+ 0 - 0
servicestack/lib/ServiceStack.Redis.3.9.56/lib/net35/ServiceStack.Redis.XML → servicestack/lib/ServiceStack.Redis.3.9.57/lib/net35/ServiceStack.Redis.XML


BIN
servicestack/lib/ServiceStack.Redis.3.9.57/lib/net35/ServiceStack.Redis.dll


BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/WindowsAzure.Caching.1.7.0.0.nupkg


+ 17 - 0
servicestack/lib/WindowsAzure.Caching.1.7.0.0/WindowsAzure.Caching.1.7.0.0.nuspec

@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+  <metadata>
+    <id>WindowsAzure.Caching</id>
+    <version>1.7.0.0</version>
+    <title>Windows Azure Shared Caching</title>
+    <authors>Microsoft</authors>
+    <owners>Microsoft</owners>
+    <licenseUrl>http://go.microsoft.com/fwlink/?LinkID=235167</licenseUrl>
+    <projectUrl>http://go.microsoft.com/fwlink/?LinkID=235165</projectUrl>
+    <iconUrl>http://www.gravatar.com/avatar/c24270713c524575b0308e05c7e9ff61?s=128</iconUrl>
+    <requireLicenseAcceptance>true</requireLicenseAcceptance>
+    <description>Windows Azure Shared Caching enables you to easily provision a cache in the cloud to be used from any applications or services that could benefit from caching. Caching increases performance by temporarily storing information from other backend sources. High performance is achieved by maintaining this cache in-memory across multiple cache servers. For a Windows Azure solution, caching can reduce the costs associated with database transactions in the cloud.</description>
+    <summary>A client library for Windows Azure Shared Caching - a distributed, in-memory, application cache service for Windows Azure and SQL Azure applications.</summary>
+    <tags>Microsoft Azure Shared Cache Distributed In-Memory SQL windowsazureofficial</tags>
+  </metadata>
+</package>

+ 30 - 0
servicestack/lib/WindowsAzure.Caching.1.7.0.0/content/app.config.Transform

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  
+  <configSections>
+    <!-- Append below entry to configSections. Do not overwrite the full section. -->
+    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
+  </configSections>
+  
+  <dataCacheClients>
+
+    <dataCacheClient name="default">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22233" />
+      </hosts>
+      <securityProperties mode="Message">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+    
+    <dataCacheClient name="SslEndpoint">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22243" />
+      </hosts>
+      <securityProperties mode="Message" sslEnabled="true">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+
+</dataCacheClients>
+</configuration>

+ 38 - 0
servicestack/lib/WindowsAzure.Caching.1.7.0.0/content/web.config.Transform

@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+
+<!--
+  For more information on how to configure your ASP.NET application, please visit
+  http://go.microsoft.com/fwlink/?LinkId=169433
+  -->
+
+<configuration>
+
+	<configSections>
+		<!-- Append below entry to configSections. Do not overwrite the full section. -->
+		<section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere"/>
+	</configSections>
+
+  <dataCacheClients>
+    
+    <dataCacheClient name="default">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22233" />
+      </hosts>
+      <securityProperties mode="Message">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+    
+    <dataCacheClient name="SslEndpoint">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22243" />
+      </hosts>
+      <securityProperties mode="Message" sslEnabled="true">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+  
+  </dataCacheClients>
+
+
+</configuration>

BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Client.dll


+ 868 - 0
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Client.xml

@@ -0,0 +1,868 @@
+<?xml version="1.0" encoding="utf-8"?>
+<doc>
+	<assembly>
+		<name>Microsoft.ApplicationServer.Caching.Client</name>
+	</assembly>
+	<members>
+		<member name="T:Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs">
+			<summary>internal</summary>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs.ExceptionObject">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:System.Exception"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs.HasSucceeded">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs.OperationContext">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.CacheOperationContext"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs.OperationType">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.CacheOperationType"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.CacheOperationContext">
+			<summary>internal</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.CacheOperationStartedEventArgs">
+			<summary>internal</summary>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationStartedEventArgs.OperationContext">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:System.Object"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.CacheOperationStartedEventArgs.OperationType">
+			<summary>internal</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.CacheOperationType"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.CacheOperationType">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Add">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.AsyncGet">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.BulkGet">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.ClearRegion">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.CreateRegion">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Get">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.GetAndLock">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.GetCacheItem">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.GetIfNewer">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.LockedRemove">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Put">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.PutAndUnlock">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Remove">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.RemoveRegion">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.ResetObjectTimeout">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Unknown">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.CacheOperationType.Unlock">
+			<summary>internal</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCache">
+			<summary>The object that is used by cache-enabled applications for storing and retrieving objects from the cache. An instance of this object is referred to as the cache client.</summary>
+		</member>
+		<member name="E:Microsoft.ApplicationServer.Caching.DataCache.CacheOperationCompleted">
+			<summary>Internal.</summary>
+		</member>
+		<member name="E:Microsoft.ApplicationServer.Caching.DataCache.CacheOperationStarted">
+			<summary>Internal.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object)">
+			<summary>Adds an object to the cache.</summary>
+			<returns>A  <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds an object to the cache. This method enables associating tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="tags">An array of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> objects to associate with the cached object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.String)">
+			<summary>Adds an object to a region in the cache. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region to save the object in.</param>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.TimeSpan)">
+			<summary>Adds an object to the cache. This method provides the ability to specify when the object should be expired.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="timeout">The amount of time the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds an object to a region in the cache. This method enables association of tags with objects in the cache. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region to save the object in.</param>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="tags">An array of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> objects to associate with the cached object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds an object to the cache. This method enables associating tags with the cached object and specifying when the object should be expired. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">An array of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> objects to associate with the cached object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.TimeSpan,System.String)">
+			<summary>Adds an object to a region in the cache. This method provides the ability to specify when the object should be expired. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see>object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region to save the object.</param>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Add(System.String,System.Object,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds an object to a region in the cache. This method enables associating tags with the cached object and specifying when the object should be expired. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region to save the object.</param>
+			<param name="key">A unique value that is used to store and retrieve the object from the cache.</param>
+			<param name="value">The object saved to the cache.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">An array of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> objects to associate with the cached object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddCacheLevelBulkCallback(Microsoft.ApplicationServer.Caching.DataCacheBulkNotificationCallback)">
+			<summary>Adds a bulk cache notification callback for cache operations occurring on all regions and items. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache bulk notification callback.</returns>
+			<param name="clientCallback">The name of the method you want to invoke when these notifications occur.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddCacheLevelCallback(Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheNotificationCallback)">
+			<summary>Adds a cache notification callback for cache operations occurring on all regions and items. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache notification callback.</returns>
+			<param name="clientCallback">The name of the method you want to invoke when these notifications occur.</param>
+			<param name="filter">The type of cache operation(s) that will trigger cache notifications.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddFailureNotificationCallback(Microsoft.ApplicationServer.Caching.DataCacheFailureNotificationCallback)">
+			<summary>Adds a failure notification callback, for notifications indicating that a client has missed one or more cache notifications. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache notification callback.</returns>
+			<param name="failureCallback">The name of the method that you want to invoke when the failure notification occurs.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddItemLevelCallback(System.String,Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheNotificationCallback)">
+			<summary>Adds a cache notification callback for cache operations occurring on one specific item that is not stored in a region. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache notification callback.</returns>
+			<param name="clientCallback">The name of the method you want to invoke when these notifications occur.</param>
+			<param name="key">The key used to store the object in the cache.</param>
+			<param name="filter">The type of cache operation(s) that will trigger cache notifications.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddItemLevelCallback(System.String,Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheNotificationCallback,System.String)">
+			<summary>Adds a cache notification callback for cache operations occurring on one specific item that is stored in region. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache notification callback.</returns>
+			<param name="clientCallback">The name of the method you want to invoke when these notifications occur.</param>
+			<param name="key">The key used to store the object in the cache.</param>
+			<param name="region">The name of the region where the object is stored.</param>
+			<param name="filter">The type of cache operation(s) that will trigger cache notifications.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.AddRegionLevelCallback(System.String,Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheNotificationCallback)">
+			<summary>Adds a cache notification callback for cache operations occurring on one specific region. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object used to identify the cache notification callback.</returns>
+			<param name="region">The name of the region for which the specified item or region operations can trigger cache notifications.</param>
+			<param name="clientCallback">The name of the method you want to invoke when these notifications occur.</param>
+			<param name="filter">The type of cache operation(s) that will trigger cache notifications.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.BulkGet(System.Collections.Generic.IEnumerable{System.String},System.String)">
+			<summary>Returns objects for the specified keys from the specified region of the cache. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns an <see cref="T:System.Collections.Generic.IEnumerable`1"></see> object with a list of key and value pairs.</returns>
+			<param name="region">Name of the region, cannot be null.</param>
+			<param name="keys">List of keys for the objects to retrieve, cannot be null.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.ClearRegion(System.String)">
+			<summary>Deletes all objects in the specified region. Applies to Windows Server AppFabric only.</summary>
+			<param name="region">The name of the region whose objects are removed.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.CreateRegion(System.String)">
+			<summary>Creates a region. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns a<see cref="T:System.Boolean"></see> value..</returns>
+			<param name="region">The name of the region that is created.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Get(System.String)">
+			<summary>Gets an object from the cache using the specified key.</summary>
+			<returns>The object that was cached by using the specified key. Null is returned if the key does not exist.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Get(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion@)">
+			<summary>Gets an object from the cache using the specified key. You may also provide the version to obtain a specific version of a key, if that version is still the most current in the cache.</summary>
+			<returns>The object that was cached by using the specified key. Null is returned if the key does not exist. Even if the key does exist, Null may also be returned because the object has been updated to a new version.</returns>
+			<param name="version">The version of the desired object. If this parameter is null, the version of the current object is retrieved.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Get(System.String,System.String)">
+			<summary>Gets an object from the specified region by using the specified key. Applies to Windows Server AppFabric only.</summary>
+			<returns>The object that was cached by using the specified key. Null is returned if the key does not exist.</returns>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Get(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion@,System.String)">
+			<summary>Gets an object from the specified region by using the specified key. You may also provide the version to obtain the specific version of a key, if that version is still the most current in the region. Applies to Windows Server AppFabric only.</summary>
+			<returns>The object that was cached by using the specified key. Null is returned if the key does not exist. Even if the key does exist, Null may also be returned because the object has been updated to a new version.</returns>
+			<param name="version">The version of the desired object. If this parameter is null, the version of the current object is retrieved.</param>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetAndLock(System.String,System.TimeSpan,Microsoft.ApplicationServer.Caching.DataCacheLockHandle@)">
+			<summary>Locks the key if the key is present and it is not locked and returns the object corresponding to the key.</summary>
+			<returns>Returns <see cref="T:System.Object"></see> matching the specified key parameter if the <see cref="T:System.Object"></see> is present and is not locked. If the key does not exist, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyDoesNotExist"></see>. Create objects based on the referenced key to resolve this error.If the object is already locked by another cache client, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectLocked"></see>. The object will be inaccessible until it is unlocked by the locking client.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object required to unlock the object. The lockHandle output parameter is passed by reference.</param>
+			<param name="timeout">The amount of time that the object should remain locked.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetAndLock(System.String,System.TimeSpan,Microsoft.ApplicationServer.Caching.DataCacheLockHandle@,System.Boolean)">
+			<summary>Lock the key if key is present and it is not locked by any clients and returns the object corresponding to the key.</summary>
+			<returns>Returns <see cref="T:System.Object"></see> matching the specified key parameter if the <see cref="T:System.Object"></see> is present and is not locked. If the key does not exist, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyDoesNotExist"></see>. Create objects based on the referenced key to resolve this error.If the object is already locked by another cache client, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectLocked"></see>. The object will be inaccessible until it is unlocked by the locking client.</returns>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object required to unlock the object. The lockHandle output parameter is passed by reference.</param>
+			<param name="forceLock">If forceLock is true, key is locked irrespective of key-value pair presence in cache.</param>
+			<param name="timeout">The amount of time that object remains locked.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetAndLock(System.String,System.TimeSpan,Microsoft.ApplicationServer.Caching.DataCacheLockHandle@,System.String)">
+			<summary>Locks the key if the key is present and is not locked and returns the object corresponding to the key. For objects stored in regions. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:System.Object"></see> matching the specified key parameter if the <see cref="T:System.Object"></see> is present and is not locked.If the key does not exist, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyDoesNotExist"></see>. Create objects based on the referenced key to resolve this error.If the object is already locked by another cache client, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectLocked"></see>. The object will be inaccessible until it is unlocked by the locking client.</returns>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object required to unlock the object. The lockHandle output parameter is passed by reference.</param>
+			<param name="timeout">The amount of time that the object remains locked.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetAndLock(System.String,System.TimeSpan,Microsoft.ApplicationServer.Caching.DataCacheLockHandle@,System.String,System.Boolean)">
+			<summary>Lock the key if key is present and it is not locked by any clients and returns the object corresponding to the key. For objects stored in regions. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:System.Object"></see> matching the specified key parameter if the <see cref="T:System.Object"></see> is present and is not locked.If the key does not exist, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyDoesNotExist"></see>. Create objects based on the referenced key to resolve this error.If the object is already locked by another cache client, a DataCacheException object is thrown with the ErrorCode set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectLocked"></see>. The object will be inaccessible until it is unlocked by the locking client.</returns>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object required to unlock the object. The lockHandle output parameter is passed by reference.</param>
+			<param name="forceLock">If forceLock is true, key is locked irrespective of key-value pair presence in cache.</param>
+			<param name="timeout">The amount of time that the object remains locked.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetCacheItem(System.String)">
+			<summary>Gets a <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItem"></see> object to retrieve all information associated with your cached object in the cluster.</summary>
+			<returns>A<see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItem"></see> object that contains all information associated with your cached object. Null is returned if the key does not exist.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetCacheItem(System.String,System.String)">
+			<summary>Gets a <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItem"></see> object to retrieve all information associated with your cached object in the cluster. For objects stored in regions. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItem"></see> object that contains all information associated with your cached object. Null is returned if the key does not exist.</returns>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetIfNewer(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion@)">
+			<summary>Gets an object from the cache, but only if a newer version of the object resides in the cache.</summary>
+			<returns>If the version in the cache differs from the version parameter, the corresponding cached object is returned. If the version in the cache is the same as the version parameter, null is returned.</returns>
+			<param name="version">The version of the desired object, passed by reference.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetIfNewer(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion@,System.String)">
+			<summary>Gets an object from the specified region, but only if a newer version of the object resides in the region. Applies to Windows Server AppFabric only.</summary>
+			<returns>If the version in the region differs from the version parameter, the corresponding cached object is returned. If the version in the region is the same as the version parameter, null is returned.</returns>
+			<param name="version">The version of the desired object, passed by reference.</param>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetObjectsByAllTags(System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Gets an enumerable list of all cached objects in the specified region that have all the same tags in common. Applies to Windows Server AppFabric only.</summary>
+			<returns>An enumerable list of all cached objects in the specified region that have all the same tags in common.</returns>
+			<param name="region">The name of the region to search. Tags are not supported outside regions. Therefore, a region name is required.</param>
+			<param name="tags">A list of tags for which to search.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetObjectsByAnyTag(System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Gets an enumerable list of all cached objects in the specified region that have any of the same tags in common. Applies to Windows Server AppFabric only.</summary>
+			<returns>An enumerable list of all cached objects in the specified region that have any of the same tags in common. Null is returned if no objects in the specified region have any of the tags specified.</returns>
+			<param name="region">The name of the region to search. Tags are not supported outside regions. Therefore, a region name is required.</param>
+			<param name="tags">A list of tags for which to search.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetObjectsByTag(Microsoft.ApplicationServer.Caching.DataCacheTag,System.String)">
+			<summary>Gets an enumerable list of all cached objects in the specified region that have the specified tag. Applies to Windows Server AppFabric only.</summary>
+			<returns>An enumerable list of all cached objects in the specified region that have the specified tag. Null is returned if no objects in the specified region have the tag specified.</returns>
+			<param name="region">The name of the region to search. Tags are not supported outside regions. Therefore, a region name is required.</param>
+			<param name="tag">The tag for which to search.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetObjectsInRegion(System.String)">
+			<summary>Gets an enumerable list of all cached objects in the specified region. Applies to Windows Server AppFabric only.</summary>
+			<returns>An enumerable list of all cached objects in the specified region.</returns>
+			<param name="region">The name of the region for which to return a list of all resident objects.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetSystemRegionName(System.String)">
+			<summary>Returns the name of the region for the specified key. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns the region name as a <see cref="T:System.String"></see>.</returns>
+			<param name="key">The key for which to find the associated region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.GetSystemRegions">
+			<summary>Used to determine the default regions for the cache. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns an enumerable list of default regions as an <see cref="T:System.Collections.Generic.IEnumerable`1"></see> object.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.OnCacheOperationCompleted(Microsoft.ApplicationServer.Caching.CacheOperationCompletedEventArgs)">
+			<summary>Internal.</summary>
+			<param name="e">Internal.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.OnCacheOperationStarted(Microsoft.ApplicationServer.Caching.CacheOperationStartedEventArgs)">
+			<summary>Internal.</summary>
+			<param name="e">Internal.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object)">
+			<summary>Adds or replaces an object in the cache.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Adds or replaces an object in the cache if it is at the specified version.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds or replaces an object in the cache. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.String)">
+			<summary>Adds or replaces an object in the specified region. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.TimeSpan)">
+			<summary>Adds or replaces an object in the cache. Specifies the timeout value of the cached object.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds or replaces an object in the cache if it is at the specified version. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.String)">
+			<summary>Adds or replaces an object in the specified region if it is at the specified version. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.TimeSpan)">
+			<summary>Adds or replaces an object in the cache if it is at the specified version. Specifies the timeout value of the cached object.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds or replaces an object in the specified region. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds or replaces an object in the cache. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.TimeSpan,System.String)">
+			<summary>Adds or replaces an object in the specified region. Specifies the timeout value of the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">Adds or replaces an object in the specified region. Specifies the timeout value of the cached object.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds or replaces an object in the specified region if it is at the specified version. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Adds or replaces an object in the cache if it is at the specified version. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.TimeSpan,System.String)">
+			<summary>Adds or replaces an object in the specified region if it is at the specified version. Specifies the timeout value of the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds or replaces an object in the specified region. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Put(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Adds or replaces an object in the specified region if it is at the specified version. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the object saved to the cache under the key value.</returns>
+			<param name="oldVersion">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be replaced.</param>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle)">
+			<summary>Replaces and unlocks an object in the cache.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method. </returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Replaces and unlocks an object in the cache. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.String)">
+			<summary>Replaces and unlocks an object in the specified region. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan)">
+			<summary>Replaces and unlocks an object in the cache. Specifies the timeout value of the cached object.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Replaces and unlocks an object in the specified region. Associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag})">
+			<summary>Replaces and unlocks an object in the cache. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan,System.String)">
+			<summary>Replaces and unlocks an object in the specified region. Specifies the timeout value of the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method. The timeout value associated with the cached object overrides expiration settings specified in the named cache configuration.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.PutAndUnlock(System.String,System.Object,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan,System.Collections.Generic.IEnumerable{Microsoft.ApplicationServer.Caching.DataCacheTag},System.String)">
+			<summary>Replaces and unlocks an object in the specified region. Specifies the timeout value and associates tags with the cached object. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object after it has been updated by this method.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="value">The object to add or replace.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+			<param name="tags">A list of tags to associate with the object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String)">
+			<summary>Removes an object from the cache.</summary>
+			<returns>True if the object identified by the key is removed; otherwise, false.</returns>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Removes an object with a specific version from the cache.</summary>
+			<returns>True if the object is removed; otherwise, false.</returns>
+			<param name="version">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be removed.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle)">
+			<summary>Removes an object from the cache with an associated lock handle.</summary>
+			<returns>True if an object from the cache was removed; otherwise, false.</returns>
+			<param name="key">The unique value that is used to identify the object in the cache.</param>
+			<param name="lockHandle">The object that was returned when the object is removed.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String,System.String)">
+			<summary>Removes an object from the cache in a region. Applies to Windows Server AppFabric only.</summary>
+			<returns>True if the object is removed; otherwise, false.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String,Microsoft.ApplicationServer.Caching.DataCacheItemVersion,System.String)">
+			<summary>Removes an object with a specific version from the cache in a region. Applies to Windows Server AppFabric only.</summary>
+			<returns>True if the object is removed; otherwise, false.</returns>
+			<param name="version">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object that represents the version of the cached object that is to be removed.</param>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Remove(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.String)">
+			<summary>Removes an object from the cache with an associated lock handle in a region. Applies to Windows Server AppFabric only.</summary>
+			<returns>True if the object is removed; otherwise, false.</returns>
+			<param name="region">The name of the region the object resides in.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The object that was returned when the object was removed.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.RemoveCallback(Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor)">
+			<summary>Removes a cache notification callback. Applies to Windows Server AppFabric only.</summary>
+			<param name="nd">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object that identifies the callback that should be removed.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.RemoveRegion(System.String)">
+			<summary>Deletes a region. All cached objects inside the region are also removed. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns true if the region is removed. Returns false if the region does not exist.</returns>
+			<param name="region">The name of the region.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(System.String,System.TimeSpan)">
+			<summary>Resets the object timeout value, defining how long objects reside in the cache before expiring. The value specified for the object overrides the default settings for the cache.</summary>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="newTimeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.ResetObjectTimeout(System.String,System.TimeSpan,System.String)">
+			<summary>Resets the object timeout value, defining how long objects reside in the region before expiring. The value specified for the object overrides the default settings for the cache.</summary>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="newTimeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Unlock(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle)">
+			<summary>Releases objects locked in the cache. This method supports pessimistic concurrency by making sure that the appropriate DataCacheLockHandle is used for unlocking the object.</summary>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Unlock(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.String)">
+			<summary>Releases objects locked in the specified region. This method supports pessimistic concurrency by making sure that the appropriate DataCacheLockHandle is used for unlocking the object. Applies to Windows Server AppFabric only.</summary>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Unlock(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan)">
+			<summary>Releases objects locked in the cache. This method supports pessimistic concurrency by making sure that the appropriate DataCacheLockHandle is used for unlocking the object. Specifies a new timeout value for the cached object.</summary>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCache.Unlock(System.String,Microsoft.ApplicationServer.Caching.DataCacheLockHandle,System.TimeSpan,System.String)">
+			<summary>Releases objects locked in the specified region. This method supports pessimistic concurrency by making sure that the appropriate DataCacheLockHandle is used for unlocking the object. Specifies a new timeout value for the cached object. Applies to Windows Server AppFabric only.</summary>
+			<param name="region">The name of the region where the object resides.</param>
+			<param name="key">The unique value that is used to identify the object in the region.</param>
+			<param name="lockHandle">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle"></see> object that was returned when the object was locked.</param>
+			<param name="timeout">The amount of time that the object should reside in the cache before expiration.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCache.DefaultTimeToLive">
+			<summary>The default expiration time if no expiration time is provided for new items in the cache.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCache.IsCompressionEnabled">
+			<summary>Specifies whether compression is enabled. At this time, the setting is internal and cannot be changed from the default setting of false.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCache.Item(System.String)">
+			<summary>Allows for the use of array notation to access cached objects.</summary>
+			<returns>A deserialized object that was saved to the cache that uses the key.</returns>
+			<param name="key">The key that is used to save the cached object.</param>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheBulkNotificationCallback">
+			<summary>Specifies a callback which is called with a list of cache operations. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheFactory">
+			<summary>Provides methods to return <see cref="T:Microsoft.ApplicationServer.Caching.DataCache"></see> objects that are mapped to a named cache. This class also enables programmatic configuration of the cache client.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactory.#ctor">
+			<summary>Used for configuring a cache client based on the application configuration file.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactory.Dispose">
+			<summary>Closes the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheFactory"></see> object and releases all associated resources.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactory.GetCache(System.String)">
+			<summary>Returns the cache client, an instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCache"></see> object.</summary>
+			<returns>The cache client, an instance of the DataCache object.</returns>
+			<param name="cacheName">The named cache to use for cache operations. For Windows Azure AppFabric, the cache name must be “default”, which is the same as calling <see cref="M:Microsoft.ApplicationServer.Caching.DataCacheFactory.GetDefaultCache"></see>.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactory.GetDefaultCache">
+			<summary>Returns the cache client corresponding to the default cache, an instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCache"></see> object.</summary>
+			<returns>The cache client, an instance of the DataCache object.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration">
+			<summary>Specifies the configuration settings for a new cache client.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.#ctor">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.#ctor(System.String)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration"></see> class. This overload specifies a specific name for the cache client.</summary>
+			<param name="clientName">The name of the cache client. If the application configuration file specifies multiple named dataCacheClient sections, this parameter can be used to specify which dataCacheClient section to use.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.Clone">
+			<summary>Create a duplicate DataCacheFactoryConfiguration object.</summary>
+			<returns>Returns a<see cref="T:System.Object"></see> that can be cast to a <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.ChannelOpenTimeout">
+			<summary>Gets or sets the length of time that the cache client waits to establish a network connection with the server.</summary>
+			<returns>A <see cref="T:System.TimeSpan"></see> object..</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.IsCompressionEnabled">
+			<summary>Specifies whether compression is enabled. At this time, the setting is internal and cannot be changed from the default setting of false.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.LocalCacheProperties">
+			<summary>Gets or sets the local cache settings for the cache client.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.MaxConnectionsToServer">
+			<summary>Specifies the maximum number of channels to open to the cache cluster.</summary>
+			<returns>Returns <see cref="T:System.Int32"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.NotificationProperties">
+			<summary>Gets or sets the notification settings for the cache client. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.RequestTimeout">
+			<summary>Gets or sets the length of time that the cache client waits for a response from the server for each request.</summary>
+			<returns>A <see cref="T:System.TimeSpan"></see>object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.SecurityProperties">
+			<summary>Gets or sets the security properties for the cache client.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.Servers">
+			<summary>Gets or sets an array of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheServerEndpoint"></see> objects.</summary>
+			<returns>Returns <see cref="T:System.Collections.Generic.IEnumerable`1"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.TransportProperties">
+			<summary>Gets or sets the transport properties for the cache client.</summary>
+			<returns>A <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties"></see>object.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheFailureNotificationCallback">
+			<summary>Specifies the parameters required for a method to be invoked by a failure notification when the cache client misses cache notifications. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties">
+			<summary>Specifies the local cache settings for a cache client.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.#ctor">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.#ctor(System.Int64,System.TimeSpan,Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties"></see> class. This overloaded constructor accepts parameters that configure the properties of local cache.</summary>
+			<param name="defaultTimeout">The time that objects reside in the local cache before invalidation.</param>
+			<param name="invalidationPolicy">The invalidation policy for the local cache. This can be set to either <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy.NotificationBased"></see> or <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy.TimeoutBased"></see>.</param>
+			<param name="objectCount">The maximum number of objects in the local cache.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.DefaultTimeout">
+			<summary>Gets the default timeout for items in the local cache.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.InvalidationPolicy">
+			<summary>Gets the invalidation policy for items in the local cache.</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.IsEnabled">
+			<summary>Gets a Boolean value indicating whether local cache is enabled for the cache client.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheProperties.ObjectCount">
+			<summary>Gets the maximum number of objects permitted in the local cache.</summary>
+			<returns>Returns <see cref="T:System.Int64"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationCallback">
+			<summary>Represents a callback method that is to be invoked by a cache notification when one or more cache operations take place. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor">
+			<summary>Identifies a cache notification callback. This identifier is required to remove the corresponding cache notification callback. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor.ToString">
+			<summary>Creates a copy of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object.</summary>
+			<returns>A string value representing the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor.CacheName"></see> and <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor.DelegateID"></see> property values.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor.CacheName">
+			<summary>The name of the cache triggering the cache notification.</summary>
+			<returns>A string value represents the name of the cache triggering the cache notification.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor.DelegateId">
+			<summary>Identifier for the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationDescriptor"></see> object. Used to distinguish between DataCacheNotificationDescriptor objects.</summary>
+			<returns>A <see cref="T:System.Int64"></see> value used to identify DataCacheNotificationDescriptor objects.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties">
+			<summary>Specifies the notification settings for a cache client. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties.#ctor(System.Int64,System.TimeSpan)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties"></see> class.</summary>
+			<param name="maxQueueLength">The maximum queue length for stored notifications on the cache cluster.</param>
+			<param name="pollInterval">The frequency with which the cache client communicates with the server to check for notifications.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties.MaxQueueLength">
+			<summary>Gets the maximum queue length for notifications on the cache cluster.</summary>
+			<returns>Returns <see cref="T:System.Int64"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheNotificationProperties.PollInterval">
+			<summary>Gets the polling interval that the cache client uses to check for notifications on the cache cluster.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheServerEndpoint">
+			<summary>Used to specify an individual cache host when programmatically configuring the cache client.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheServerEndpoint.#ctor(System.String,System.Int32)">
+			<summary>Used to define a cache host in the cache cluster for programmatic configuration of the cache client.</summary>
+			<param name="cachePort">The cache port number of the cache host.</param>
+			<param name="hostName">The computer name of the cache server or the service URL.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheServerEndpoint.CachePort">
+			<summary>The cache port on the cache server.</summary>
+			<returns>A <see cref="T:System.Int32"></see> value that represents the cache port number on the cache server.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheServerEndpoint.HostName">
+			<summary>The computer name or service URL of the cache server.</summary>
+			<returns>A string representing the computer name or service URL of the cache server.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider">
+			<summary>A session storage provider that enables Web applications to store session-state data to a distributed cache system.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.#ctor">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.CreateNewStoreData(System.Web.HttpContext,System.Int32)">
+			<summary>Creates a new data storage object for the current request.</summary>
+			<returns>A SessionStateStoreData object, used for storing session data in the distributed cache.</returns>
+			<param name="context">The HttpContext for the current request.</param>
+			<param name="timeout">The session state Timeout value for the new SessionStateStoreData object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.CreateUninitializedItem(System.Web.HttpContext,System.String,System.Int32)">
+			<summary>Adds a new session state to the distributed cache. </summary>
+			<param name="id">The session identifier for the current request.</param>
+			<param name="context">The HttpContext for the current request.</param>
+			<param name="timeout">The session Timeout for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.Dispose">
+			<summary>Releases all resources used by the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.EndRequest(System.Web.HttpContext)">
+			<summary>Called by the SessionStateModule class at the end of a request</summary>
+			<param name="context">The HttpContext for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.GetItem(System.Web.HttpContext,System.String,System.Boolean@,System.TimeSpan@,System.Object@,System.Web.SessionState.SessionStateActions@)">
+			<summary>Returns read-only session-state data from the cache.</summary>
+			<returns>A SessionStateStoreData object populated with session values and information from the cache</returns>
+			<param name="lockAge">When this method returns, contains a TimeSpan object that is set to the period of time that an item in the cache has been locked.</param>
+			<param name="id">The session identifier for the current request.</param>
+			<param name="context">The HttpContext of the current request.</param>
+			<param name="actions">When this method returns, contains one of the SessionStateActions values. This indicates whether the current session is an uninitialized, cookieless session.</param>
+			<param name="locked">When this method returns, contains a Boolean value that is set to true if the requested session item is locked in the cache; otherwise, false.</param>
+			<param name="lockId">When this method returns, contains an object that is set to the lock identifier for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.GetItemExclusive(System.Web.HttpContext,System.String,System.Boolean@,System.TimeSpan@,System.Object@,System.Web.SessionState.SessionStateActions@)">
+			<summary>Returns and locks the read-only session-state data from the cache.</summary>
+			<returns>A SessionStateStoreData object populated with session values and information from the cache.</returns>
+			<param name="lockAge">When this method returns, contains a TimeSpan object that is set to the period of time that an item in the cache has been locked.</param>
+			<param name="id">The session identifier for the current request.</param>
+			<param name="context">The HttpContext of the current request.</param>
+			<param name="actions">When this method returns, contains one of the SessionStateActions values. This indicates whether the current session is an uninitialized, cookieless session.</param>
+			<param name="locked">When this method returns, contains a Boolean value that is set to true if a lock in the cache is successfully obtained; otherwise, false.</param>
+			<param name="lockId">When this method returns, contains an object that is set to the lock identifier for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)">
+			<summary>Initializes the distributed cache provider.</summary>
+			<param name="name">The name of the application.</param>
+			<param name="config">The configuration details specified in the application configuration file for cacheName and regionName.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.InitializeRequest(System.Web.HttpContext)">
+			<summary>Initializes the outgoing HTTP request.</summary>
+			<param name="context">The context for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.ReleaseItemExclusive(System.Web.HttpContext,System.String,System.Object)">
+			<summary>Releases a lock on the session data in the cache.</summary>
+			<param name="id">The session identifier of the current request.</param>
+			<param name="context">The HttpContext of the current request.</param>
+			<param name="lockId">The lock identifier of the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.RemoveItem(System.Web.HttpContext,System.String,System.Object,System.Web.SessionState.SessionStateStoreData)">
+			<summary>Deletes session data from the cache.</summary>
+			<param name="id">The session identifier of the current request.</param>
+			<param name="context">The HttpContext of the current request.</param>
+			<param name="item">The SessionStateStoreData that represents the item to delete from the cache.</param>
+			<param name="lockId">The lock identifier of the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.ResetItemTimeout(System.Web.HttpContext,System.String)">
+			<summary>Updates the expiration date and time of session data in the cache.</summary>
+			<param name="id">The session identifier of the current request.</param>
+			<param name="context">The context for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.SetAndReleaseItemExclusive(System.Web.HttpContext,System.String,System.Web.SessionState.SessionStateStoreData,System.Object,System.Boolean)">
+			<summary>Updates the session item information in the cache with values from the current request and clears the lock on the session item.</summary>
+			<param name="id">The session identifier of the current request..</param>
+			<param name="context">The HttpContext of the current request.</param>
+			<param name="newItem">If true, identifies the session item as a new item if true; otherwise, identifies the session item as an existing item.</param>
+			<param name="item">The SessionStateStoreData object that contains the current session values to be stored.</param>
+			<param name="lockId">The lock identifier for the current request.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.SetItemExpireCallback(System.Web.SessionState.SessionStateItemExpireCallback)">
+			<summary>Sets a reference to the SessionStateItemExpireCallback delegate for the Session_OnEnd event defined in the Global.asax file.</summary>
+			<returns>Cache does not support notification of the expiration; therefore this method always returns false.</returns>
+			<param name="expireCallback">The SessionStateItemExpireCallback delegate for the Session_OnEnd event defined in the Global.asax file.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider.ApplicationName">
+			<summary>The application name. This is used to differentiate sessions in the data source by application.</summary>
+			<returns>Returns <see cref="T:System.String"></see>.</returns>
+		</member>
+	</members>
+</doc>

BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Core.dll


+ 920 - 0
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.ApplicationServer.Caching.Core.xml

@@ -0,0 +1,920 @@
+<?xml version="1.0" encoding="utf-8"?>
+<doc>
+	<assembly>
+		<name>Microsoft.ApplicationServer.Caching.Core</name>
+	</assembly>
+	<members>
+		<member name="N:Microsoft.ApplicationServer.Caching">
+			<summary>The Microsoft.ApplicationServer.Caching namespace provides access to an in-memory application cache application for developing scalable, high-performance applications. This namespace can be used to cache any serializable common language runtime (CLR) object and provides access through simple APIs.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.BaseOperationNotification">
+			<summary>The base class for an event used for notifications. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.BaseOperationNotification.#ctor(System.String,Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.BaseOperationNotification"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="version">Version of the operation which caused the notification.</param>
+			<param name="cacheName">Name of the cache in which the operation occurred.</param>
+			<param name="opType">Type of the operation which caused the notification.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.BaseOperationNotification.ToString">
+			<summary>Returns the string representation of the BaseOperationNotification event. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:System.String"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.BaseOperationNotification.CacheName">
+			<summary>Name of the cache in which the operation occurred. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:System.String"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.BaseOperationNotification.OperationType">
+			<summary>The type of the operation which caused the notification. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheOperations"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.BaseOperationNotification.Version">
+			<summary>The version of the operation which caused the notification. Applies to Windows Server AppFabric only.</summary>
+			<returns>Returns <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.ConfigStoreEntry">
+			<summary>Represents a key-value pair that can be used by a custom provider for the cache cluster configuration store. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ConfigStoreEntry.#ctor(System.String,System.Byte[],System.Int64)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreEntry"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="version">The version of the entry.</param>
+			<param name="key">The key of the entry.</param>
+			<param name="value">The value of the entry.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.ConfigStoreEntry.Key">
+			<summary>The key of the entry. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:System.String"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.ConfigStoreEntry.Version">
+			<summary>The version of the entry. Applies to Windows Server AppFabric only.</summary>
+			<returns>A <see cref="T:System.Int64"></see> value that is greater than 0.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.ConfigStoreException">
+			<summary>An exception that should be thrown from an implementation of the <see cref="T:Microsoft.ApplicationServer.Caching.ICustomProvider"></see> interface. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ConfigStoreException.#ctor">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreException"></see> class. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ConfigStoreException.#ctor(System.String)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreException"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="exceptionMessage">The message string that describes the error.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ConfigStoreException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreException"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="context">The contextual information about the source or destination.</param>
+			<param name="info">The object that holds the serialized object data.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ConfigStoreException.#ctor(System.String,System.Exception)">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreException"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="inner">The inner exception that caused the current exception.</param>
+			<param name="exceptionMessage">The message string that describes the error.</param>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheClientLogManager">
+			<summary>Provides support for changing the logging level of Windows Azure AppFabric caching.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheClientLogManager.ChangeLogLevel(System.Diagnostics.TraceLevel)">
+			<summary>Changes the logging level of the Event Tracing for Windows (ETW) log for Windows Azure AppFabric caching.</summary>
+			<returns>Returns <see cref="T:System.Diagnostics.TraceLevel"></see>.</returns>
+			<param name="level">The trace level for the log.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheClientLogManager.SetSink(Microsoft.ApplicationServer.Caching.DataCacheTraceSink,System.Diagnostics.TraceLevel)">
+			<summary>Enables tracing for a cache client. Applies to Windows Server AppFabric only.</summary>
+			<param name="traceSink">The type of tracing. This can be set to <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheTraceSink.DiagnosticSink"></see> or <see cref="F:Microsoft.ApplicationServer.Caching.DataCacheTraceSink.EtwSink"></see>.</param>
+			<param name="traceLevel">The <see cref="T:System.Diagnostics.TraceLevel"></see> trace level.</param>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheErrorCode">
+			<summary>A static class used to store global error codes.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.AcsTokenRequestFailedAuthError">
+			<summary>The ACS token provided failed the authentication process.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.AdminAlreadyConfigured">
+			<summary>Cache Administration is already configured on the machine.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.AdminNotConfigured">
+			<summary>Cache Administration is not configured on the machine.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.AuthorizationTokenNotValid">
+			<summary>The authentication token provided is not in a valid format.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminCacheAlreadyPresent">
+			<summary>The named cache already exists in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminCacheConfigWriteError">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminCacheCreationInconsistencyFailure">
+			<summary>The named cache could not be created due to a detected inconsistency in the configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminCacheNotPresent">
+			<summary>The specified named cache does not exist in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminCancelShutdownError">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterDown">
+			<summary>The cache cluster is not running.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterNotReady">
+			<summary>The cache cluster is not ready to perform the requested operation.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterRefreshFailed">
+			<summary>The cache cluster experienced an error while attempting to refresh the list of cache hosts on all of the cache hosts.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterSettingsNotProvided">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterSettingsReadError">
+			<summary>An error occurred attempting to read the configuration store provider name and connection string from the registry.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminClusterTimeout">
+			<summary>A Cache Administration timeout occurred.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminConfigAddHostError">
+			<summary>An error occurred attempt to add a cache host to the cache cluster configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminConfigDeleteHostError">
+			<summary>An error occurred attempting to delete a cache host from the cache cluster configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminDefaultCacheCreateFailure">
+			<summary>An error occurred while creating the default cache.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminDeleteInProgress">
+			<summary>The specified cache is in the process of being removed.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminGrantClientAccountErrorFormat">
+			<summary>An error occurred attempting to add an account to the allowed client accounts list.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostConfigWriteError">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostNameResolveFailure">
+			<summary>The name 'localhost' is unable to be resolved to the current host name.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostNotPresent">
+			<summary>The specified cache host is not part of the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostNotReachable">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostNotRunning">
+			<summary>The specified cache host is not currently running.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostOperationError">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostRefreshFailed">
+			<summary>The cache cluster experienced an error while attempting to refresh the list of cache hosts on each of the specified cache host.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostRunning">
+			<summary>The specified cache host is already in the running state.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostsNotRunning">
+			<summary>No cache hosts are running in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminHostsRunning">
+			<summary>One or more cache hosts are running in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminIncompleteParameters">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInstallPathReadError">
+			<summary>An error occurred reading the installation path from the registry.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidCacheName">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidClusterSettings">
+			<summary>The specified provider string or connection string is invalid. </summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidOperation">
+			<summary>The specified operation is invalid.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidParameters">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidParametersForHost">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminInvalidSecuritySettings">
+			<summary>The specified security settings are invalid.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminMaxCachesCreated">
+			<summary>The specified named cache cannot be created, because the cache cluster has reached the maximum number of named caches.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminMinSecondariesOutOfBounds">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNoHosts">
+			<summary>There are no cache hosts in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNoQuorumIfHostStopped">
+			<summary>The specified host cannot be stopped, because the number of hosts would drop below the required quorum.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNoSeedNodes">
+			<summary>There are no seed nodes present in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNoValuesProvided">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNullArgs">
+			<summary>A required argument is null.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminNullProviderSettingsKey">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminOperationError">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminOperationNotSupported">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminPortsDuplicated">
+			<summary>One or more port numbers have duplicate values.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminProviderTypeUnspecified">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminQuorumNotUp">
+			<summary>The required quorum of hosts is not running.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminRegionNotPresent">
+			<summary>The specified region does not exist in the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminRemoteRegistryAccessFailed">
+			<summary>An error occurred while attempting to access the registry on a remote cache host.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminRequestTimeoutResultUnknown">
+			<summary>The request timed out, but the result of the request is unknown.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminRevokeClientAccountErrorFormat">
+			<summary>An error occurred attempting to remove an account from the list of allowed client accounts.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminShutdownInProgress">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminShutdownNotInProgress">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminStatsIncorrect">
+			<summary>The returned status information might be incorrect, because one or more cache hosts could not be reached.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminStoreAccessFailure">
+			<summary>An error occurred attempting to access the cache cluster configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminTimeout">
+			<summary>A timeout occurred.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminUnknownError">
+			<summary>An unknown error occurred.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminWindowsAccountAlreadyPresent">
+			<summary>The specified Windows account already exists in the list of allowed client accounts.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminWindowsAccountInvalid">
+			<summary>The specified Windows account is not valid.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheAdminWindowsAccountNotPresent">
+			<summary>The specified Windows account is not present in the list of allowed client accounts.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheDisabled">
+			<summary>The cache has been disabled. One possible cause could be a failure to reconcile charges associated with the specified cache.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CacheItemVersionMismatch">
+			<summary>The object in the cache does not match with the specified version.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.CcrUnhandledException">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ClientServerVersionMismatch">
+			<summary>The cache client assemblies are a different version than the cache host assemblies.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ClusterAlreadyInitialized">
+			<summary>The cache cluster has already been initialized.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ClusterConfigConnectionError">
+			<summary>An error occurred while attempting to connect to the cache cluster configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ClusterConfigReadError">
+			<summary>An error occurred while reading the cache cluster configuration store.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ClusterNotInitialized">
+			<summary>The cache cluster is not initialized.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ConfigurationStateSaveError">
+			<summary>An error occurred while attempting to save the configuration state.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ConnectionSettingsRegistrySaveError">
+			<summary>An error occurred while attempting to save the connection settings to the registry.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ConnectionTerminated">
+			<summary>The connection was terminated. This could be caused by server or network problems.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.DomainBlockedAccount">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.GetComputerDomainError">
+			<summary>An error occurred while attempting to get the computer domain.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.HostAdditionFailureError">
+			<summary>An error occurred while attempting to add a cache host to the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.HostAlreadyPresent">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.HostDeletionFailureError">
+			<summary>An error occurred while attempting to remove a host from the cache cluster.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.HostEntryNotFound">
+			<summary>The specified cache host entry was not found in the cache cluster configuration.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.IncompleteConnectionParameters">
+			<summary>The specified connection parameters are incomplete.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.InstallPathMissingError">
+			<summary>An error occurred while attempting to read the install path from the registry.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.InvalidArgument">
+			<summary>The argument is not valid.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.InvalidCacheLockHandle">
+			<summary>The specified lock handle is not valid.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.InvalidEnumerator">
+			<summary>An invalid enumerator is specified.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyAlreadyExists">
+			<summary>The key is already present in the cache or region.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.KeyDoesNotExist">
+			<summary>An object cached with the specified key does not exist in the cache or region.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.MaxNamedCacheCountExceeded">
+			<summary>The named cache count exceeded the maximum value.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NamedCacheDoesNotExist">
+			<summary>The named cache does not exist.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NetworkShareAsLocalPathError">
+			<summary>A network path was expected, but a local path was provided.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NetworkShareFilePermissionsError">
+			<summary>The specified network file share does not have appropriate permissions.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NetworkShareFolderConnectionError">
+			<summary>An error occurred while attempting to connect to the shared network folder.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NewNetworkShareSetupError">
+			<summary>An error occurred attempting to write the configuration store files at the specified shared network folder.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NonDomainBlockedAccount">
+			<summary>The domain account is blocked for the workgroup configuration.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NonDomainNWService">
+			<summary>The Network Service account is not permitted for a workgroup-based configuration of the Caching Service.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.NotificationInvalidationNotSupported">
+			<summary>Cache notifications are not supported because the named cache has been created without notifications enabled.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectLocked">
+			<summary>The cached object has already been locked.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ObjectNotLocked">
+			<summary>The object is not locked.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.OperationNotSupported">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.PermissionsError">
+			<summary>An error occurred while setting permissions on the cache cluster configuration.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.PortAlreadyInUseError">
+			<summary>The specified port is already in-use.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.PortDuplicationError">
+			<summary>One or more ports have duplicate values.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ReadThroughProviderDidNotReturnResult">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ReadThroughProviderFailure">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ReadThroughProviderNotFound">
+			<summary>Internal.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.RegionAlreadyExists">
+			<summary>The region already exists.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.RegionDoesNotExist">
+			<summary>The region does not exist.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.RegistryAccessFailed">
+			<summary>An error occurred while attempting to access the registry.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.RegistryKeyOpenFailure">
+			<summary>An error occurred while attempting to open a registry key for reading.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.RetryLater">
+			<summary>Temporary failure, retry the operation later.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.SerializationException">
+			<summary>An exception was encountered during object serialization.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ServerNull">
+			<summary>The server passed to the <see cref="T:Microsoft.Data.Caching.DataCacheFactory"></see> constructor is null.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ServiceAccessError">
+			<summary>An error occurred while accessing the Caching Service.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ServiceAlreadyConfigured">
+			<summary>The Caching Service is already configured on the specified cache host.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ServiceNotConfigured">
+			<summary>The Caching Service is not configured on the specified cache host.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.ServiceNotStopped">
+			<summary>The operation cannot be completed, because the Caching Service is still running.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.SqlAuthenticationNotSupported">
+			<summary>SQL Server authentication is not permitted with the SQL Server provider for the cache cluster configuration store. Windows authentication must be used.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.TestConnectionFailed">
+			<summary>The test connection failed.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.Timeout">
+			<summary>Communications with the cache cluster has experienced a delay past the timeout value.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.UndefinedError">
+			<summary>An unknown error has occurred.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorCode.UsageResourceNotFound">
+			<summary>Internal.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus">
+			<summary>Used to retrieve substatus codes for errors returned to the client.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.CacheServerUnavailable">
+			<summary>The primary cache server is unavailable.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.KeyLatched">
+			<summary>The client failed to update a key when adding or replacing an object in the cache.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.None">
+			<summary>There is no specific substatus code.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.NotPrimary">
+			<summary>The request did not find the primary server.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.NoWriteQuorum">
+			<summary>Unable to satisfy the specified write quorum of cache hosts.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.QuotaExceeded">
+			<summary>A resource quota for the Windows Azure AppFabric caching namespace has been exceeded.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.ReadThroughKeyContention">
+			<summary>internal</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.ReplicationQueueFull">
+			<summary>The replication queue is full.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.ServiceMemoryShortage">
+			<summary>The memory available for the caching service is low.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheErrorSubStatus.Throttled">
+			<summary>The requested operation failed, because the required cache host is in a throttled state.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheException">
+			<summary>Used for cache-related exceptions.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheException.#ctor">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheException"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheException.#ctor(System.String)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheException"></see> class; allows you to provide a message with the exception.</summary>
+			<param name="message">The message describing the exception.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheException"></see> class; allows you to provide serialization information with the exception.</summary>
+			<param name="context">Describes the source, destination, and context of a serialized stream.</param>
+			<param name="info">Stores serialization information about an object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheException.#ctor(System.String,System.Exception)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheException"></see> class; allows you to provide a message and another exception with the exception.</summary>
+			<param name="innerException">Another exception related to this exception.</param>
+			<param name="message">The message describing the exception.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheException.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
+			<summary>The interface that is used for serialization.</summary>
+			<param name="context">The StreamingContext class used to describe the source and destination of the exception.</param>
+			<param name="info">The SerializationInfo class used to store all the data that you need to serialize the exception.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheException.ErrorCode">
+			<summary>The integer used to identify the type of exception encountered.</summary>
+			<returns>An <see cref="T:System.Int32"></see> specifying the type of exception encountered.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheException.HelpLink">
+			<summary>A link to help for the exception.</summary>
+			<returns>Returns <see cref="T:System.String"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheException.Message">
+			<summary>The description of the exception encountered.</summary>
+			<returns>A <see cref="T:System.String"></see> that describes the type of exception encountered.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheException.SubStatus">
+			<summary>The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheErrorSubstatus"></see> of the exception encountered.</summary>
+			<returns>An <see cref="T:System.Int32"></see> indicating the exception substatus.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheException.TrackingId">
+			<summary>The tracking identifier related to the exception. Only valid if tracing is enabled.</summary>
+			<returns>Returns <see cref="T:System.Guid"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheItem">
+			<summary>Used to retrieve all information associated with the cached object in the cluster.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItem.#ctor">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItem"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItem.ToString">
+			<summary>Creates a string representation of the DataCacheItem object.</summary>
+			<returns>Returns <see cref="T:System.String"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.CacheName">
+			<summary>The name of the cache where the object is stored.</summary>
+			<returns>A string value that represents the name of the cache where the object is stored.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Key">
+			<summary>The identifier that is used to distinguish the cached object in the cache or region.</summary>
+			<returns>A string value that represents the identifier that is used to distinguish the cached object in the cache or region.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.RegionName">
+			<summary>If applicable, the name of the region where the object is stored.</summary>
+			<returns>A string value that represents, if applicable, the name of the region where the object is stored.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Size">
+			<summary>The approximate size of the cached item. This field is intended for internal use only.</summary>
+			<returns>Returns <see cref="T:System.Int32"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Tags">
+			<summary>A generic list of tags associated with the cached object.</summary>
+			<returns>An generic list of <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> objects associated with the cached object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Timeout">
+			<summary>Specifies the length of time for which the object will remain in the cache.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Value">
+			<summary>The object stored in cache.</summary>
+			<returns>An object representing the deserialized form of the cached object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheItem.Version">
+			<summary>The version of the cached object.</summary>
+			<returns>The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion">
+			<summary>Used to represent the version of a cached object.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.CompareTo(Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Used to compare two versions of the same item, specified with the same key.</summary>
+			<returns>An <see cref="T:System.Int32"></see>value: 0 if the versions are equal, greater than zero if the instance is greater than the version parameter value, or less than zero if the instance is less than the version parameter value.</returns>
+			<param name="other">The <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> to be compared.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.Equals(System.Object)">
+			<summary>Used to determine whether another object is the same.</summary>
+			<returns>A <see cref="T:System.Boolean"></see>value: true, if the objects are the same; false, if they are different.</returns>
+			<param name="obj">Another object for comparison.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.GetHashCode">
+			<summary>Returns the hash code of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> object.</summary>
+			<returns>An <see cref="T:System.Int32"></see>value that represents the hash code of the DataCacheItemVersion object.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.IsEmpty(Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Indicates whether the DataCacheItemVersion object points to a null version. This is intended for internal use only.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>.</returns>
+			<param name="version">The DataCacheItemVersion object to examine.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.op_Equality(Microsoft.ApplicationServer.Caching.DataCacheItemVersion,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Indicates whether the two <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> objects are equal.</summary>
+			<returns>True if the two specified objects are equal; otherwise, false.</returns>
+			<param name="right">The second object to compare.</param>
+			<param name="left">The first object to compare.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.op_GreaterThan(Microsoft.ApplicationServer.Caching.DataCacheItemVersion,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Indicates whether the first object is greater than the second object.</summary>
+			<returns>True if the first object is greater than the second object; otherwise, false.</returns>
+			<param name="right">The second object to compare.</param>
+			<param name="left">The first object to compare.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.op_Inequality(Microsoft.ApplicationServer.Caching.DataCacheItemVersion,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Indicates whether the two <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheItemVersion"></see> objects are unequal.</summary>
+			<returns>True if the two objects are not equal; otherwise, false.</returns>
+			<param name="right">The second object to compare.</param>
+			<param name="left">The first object to compare.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheItemVersion.op_LessThan(Microsoft.ApplicationServer.Caching.DataCacheItemVersion,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Indicates whether the value of the first object is less than the second object.</summary>
+			<returns>True if the value of the first object is less than the value of the second object; otherwise, false.</returns>
+			<param name="right">The second object to compare.</param>
+			<param name="left">The first object to compare.</param>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy">
+			<summary>Specifies the way locally cached objects should be invalidated.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy.NotificationBased">
+			<summary>Specifies that objects will stay in local cache until they are automatically invalidated by a cache notification.  Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheLocalCacheInvalidationPolicy.TimeoutBased">
+			<summary>Specifies that objects will stay in local cache until their lifetime reaches the localCacheTimeout duration specified in the DataCacheFactory constructor. </summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheLockHandle">
+			<summary>Represents the structure used as a key to lock and unlock cached objects in a pessimistic concurrency scenario.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheLockHandle.ToString">
+			<summary>Returns the specified object to string.</summary>
+			<returns>A string that represents the object.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor">
+			<summary>Represents a notification event for operations performed against the cache, such as Add or Remove. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.#ctor(System.String,System.String,System.String,Microsoft.ApplicationServer.Caching.DataCacheOperations,Microsoft.ApplicationServer.Caching.DataCacheItemVersion)">
+			<summary>Creates a new instance of the DataCacheOperationDescriptor class using the specified parameters. Applies to Windows Server AppFabric only.</summary>
+			<param name="version">The version of the cached object.</param>
+			<param name="key">The key used to store the object in the cache.</param>
+			<param name="cacheName">Name of the cache in which the operation occurred.</param>
+			<param name="regionName">The name of the region where the object is stored.</param>
+			<param name="opType">The type of operation that occurred.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.ToString">
+			<summary>Returns the string representation of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor"></see> object.</summary>
+			<returns>A string representing the current value of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.Key">
+			<summary>Returns the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.Key"></see> property.</summary>
+			<returns>A string representing the current value of the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.Key"></see> property.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.RegionName">
+			<summary>Returns the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.RegionName"></see> property.</summary>
+			<returns>A string representing the current value of the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheOperationDescriptor.RegionName"></see> property.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheOperations">
+			<summary>An enumeration used to specify specific item or region events that can trigger a cache notification.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.AddItem">
+			<summary>Indicates that an object was added to the cache.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.ClearRegion">
+			<summary>Indicates that a region in the cache was cleared with the <see cref="M:Microsoft.ApplicationServer.Caching.DataCache.ClearRegion(System.String)"></see> method.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.CreateRegion">
+			<summary>Indicates that a region in the cache was created with the <see cref="M:Microsoft.ApplicationServer.Caching.DataCache.CreateRegion(System.String,System.Boolean)"></see> method. </summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.RemoveItem">
+			<summary>Indicates that an object was removed from the cache. </summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.RemoveRegion">
+			<summary>Indicates that a region in the cache was removed with the <see cref="M:Microsoft.ApplicationServer.Caching.DataCache.RemoveRegion(System.String)"></see> method. </summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheOperations.ReplaceItem">
+			<summary>Indicates that an object was replaced in the cache. </summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel">
+			<summary>Enumeration indicating whether data sent between client and server is signed and/or encrypted.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel.EncryptAndSign">
+			<summary>Indicates both encryption and signing are used.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel.None">
+			<summary>Indicates that neither encryption nor signing is used.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel.Sign">
+			<summary>Indicates that signing without encryption is used.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity">
+			<summary>Used to enable signing and/or encryption of data sent between client and server.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSecurity.#ctor">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSecurity.#ctor(System.Security.SecureString)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> class. Applies to Windows Azure AppFabric only.</summary>
+			<param name="authorizationToken">A SecureString object that contains the authorization token from the azureportal1.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheSecurity.#ctor(Microsoft.ApplicationServer.Caching.DataCacheSecurityMode,Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> class, allows you to specify the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurityMode"></see> and <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel"></see> for the instance. Applies to Windows Server AppFabric only.</summary>
+			<param name="securityMode">Enumeration indicating if channel security is disabled by setting to None; or if channel security is enabled by setting to Transport.</param>
+			<param name="protectionLevel">Enumeration indicating whether data sent between client and server is signed and/or encrypted.</param>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheSecurity.ProtectionLevel">
+			<summary>The <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheSecurity.ProtectionLevel"></see> set for the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> object.</summary>
+			<returns>Returns the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheProtectionLevel"></see> set for the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> object.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheSecurity.SecurityMode">
+			<summary>The <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheSecurity.SecurityMode"></see> set for the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> object.</summary>
+			<returns>Returns the <see cref="P:Microsoft.ApplicationServer.Caching.DataCacheSecurity.SecurityMode"></see> set for the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheSecurity"></see> object.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheSecurityMode">
+			<summary>Enumeration indicating whether channel security is enabled for data sent between client and server.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheSecurityMode.Message">
+			<summary>Specifies that message security is used. This is the security mode required for Windows Azure AppFabric caches, which use the Access Control Service (ACS).</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheSecurityMode.None">
+			<summary>Specifies that no security is enabled.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheSecurityMode.Transport">
+			<summary>Specifies that transport security is enabled.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheTag">
+			<summary>Represents an optional string-based identifier that you can associate with a cached object. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTag.#ctor(System.String)">
+			<summary>Initializes a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> class. Applies to Windows Server AppFabric only.</summary>
+			<param name="tag">The string-based identifier to associate with a cached object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTag.Equals(System.Object)">
+			<summary>Compares the current DataCacheTag object for equality with the specified DataCacheTag object.</summary>
+			<returns>True if the object implements the ToString method and its value is the same as the string representation of the current DataCacheTag; otherwise, false.</returns>
+			<param name="obj">The object whose string representation is compared for equality to the current <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTag.GetHashCode">
+			<summary>Returns the hash code for the current <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> object.</summary>
+			<returns>An integer representing the hash code for the current DataCacheTag object.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTag.ToString">
+			<summary>Returns the string representation of the current <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTag"></see> object.</summary>
+			<returns>A string representing the current value of the DataCacheTag object</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheTraceSink">
+			<summary>Provides fields that specify the type of cache client tracing to use with the <see cref="M:Microsoft.ApplicationServer.Caching.DataCacheClientLogManager.SetSink(Microsoft.ApplicationServer.Caching.DataCacheTraceSink,System.Diagnostics.TraceLevel)"></see> method. Applies to Windows Azure AppFabric only.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheTraceSink.DiagnosticSink">
+			<summary>A trace sink that uses standard Windows Azure AppFabric diagnostics. Applies to Windows Azure AppFabric only.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.DataCacheTraceSink.EtwSink">
+			<summary>A trace sink that uses Event Tracing for Windows (ETW) to record the trace data. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties">
+			<summary>Specifies the transport settings for a cache client.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.#ctor">
+			<summary>Creates a new instance of the <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties"></see> class.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.Clone">
+			<summary>Creates a copy of the current <see cref="T:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties"></see> object.</summary>
+			<returns>Returns <see cref="T:System.Object"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.ChannelInitializationTimeout">
+			<summary>Gets or sets the length of time to wait for a WCF channel initialization before timing out.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.ConnectionBufferSize">
+			<summary>Gets or sets the size of the receive buffers used by transport channels.</summary>
+			<returns>Returns <see cref="T:System.Int32"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.MaxBufferPoolSize">
+			<summary>Gets or sets the maximum buffer pool size used by the WCF buffer manager.</summary>
+			<returns>Returns <see cref="T:System.Int64"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.MaxBufferSize">
+			<summary>Gets or sets the maximum buffer size.</summary>
+			<returns>Returns <see cref="T:System.Int32"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.MaxOutputDelay">
+			<summary>Gets or sets the maximum length of time to wait before requests are batched and sent to the client.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="P:Microsoft.ApplicationServer.Caching.DataCacheTransportProperties.ReceiveTimeout">
+			<summary>Gets or sets the length of time to wait for a request before aborting the channel.</summary>
+			<returns>Returns <see cref="T:System.TimeSpan"></see>.</returns>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.EvictionType">
+			<summary>Specifies the eviction used for a cache. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.EvictionType.Lru">
+			<summary>The cache uses an eviction policy of Least-Recently-Used (LRU).</summary>
+		</member>
+		<member name="F:Microsoft.ApplicationServer.Caching.EvictionType.None">
+			<summary>The cache does not evict objects.</summary>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.ICustomProvider">
+			<summary>Represent an ICustomProvider interface. Applies to Windows Server AppFabric only.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.AddUser(System.String,System.String)">
+			<summary>Adds a Windows account to the list of allowed users that have access to the configuration store..</summary>
+			<returns>Returns a<see cref="T:System.Object"></see> that can be passed to the <see cref="M:Microsoft.ApplicationServer.Caching.ICustomProvider.RemoveUser(System.String,System.String,System.Object)"></see> method in the case of a rollback.</returns>
+			<param name="user">The user name.</param>
+			<param name="machine">The machine name.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.BeginTransaction">
+			<summary>Begins a transaction to provide isolation from other configuration store access.</summary>
+			<returns>Returns a<see cref="T:System.Object"></see> that represents the transaction context..</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Cleanup">
+			<summary>Enables the provider to clean up any data in the cache cluster configuration store.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Delete(System.Object,System.String)">
+			<summary>Deletes an existing entry from the configuration store.</summary>
+			<param name="transactionContext">The transaction context object associated with this entry.</param>
+			<param name="type">The type of entry to be enumerated.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Delete(System.Object,System.String,System.String,System.Int64)">
+			<summary>Deletes an existing entry from the configuration store.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>. If the deletion succeeds, the return value is true. If the entry does not exist or if the version does not match, the return value is false.</returns>
+			<param name="oldVersion">The version of the entry. If this value is less than or equal to 0, the deletion occurs regardless of the version. If this value is greater than 0, then the deletion is only performed if the version of the entry matches the version provided.</param>
+			<param name="key">The key of the entry.</param>
+			<param name="transactionContext">The transaction context object associated with this entry.</param>
+			<param name="type">The type of entry to be enumerated.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.EndTransaction(System.Object,System.Boolean)">
+			<summary>Commits or rollbacks a transaction previously started with the <see cref="M:Microsoft.ApplicationServer.Caching.ICustomProvider.BeginTransaction"></see> method.</summary>
+			<param name="transactionContext">An object that represents the transaction context. This object is returned from the <see cref="M:Microsoft.ApplicationServer.Caching.ICustomProvider.BeginTransaction"></see> method.</param>
+			<param name="rollback">If true, the transaction should be rolled back. If false, the transaction should be committed.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.GetCurrentVersion(System.Object,System.String,System.String)">
+			<returns>Returns <see cref="T:System.Int64"></see>.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.GetEntries(System.Object,System.String)">
+			<summary>Enumerates all the entries of the specified type.</summary>
+			<returns>Returns a<see cref="T:System.Collections.Generic.ICollection`1"></see> of entries.</returns>
+			<param name="transactionContext">The transaction context object.</param>
+			<param name="type">The type of entry to enumerate.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.GetEntry(System.Object,System.String,System.String)">
+			<summary>Retrieves a <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreEntry"></see> object from the configuration store.</summary>
+			<returns>Returns a<see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreEntry"></see> object.</returns>
+			<param name="key">The key of the entry.</param>
+			<param name="transactionContext">The transaction context object.</param>
+			<param name="type">The type of the entry.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.GetStoreUtcTime(System.Object)">
+			<summary>Obtains the current UTC time based on the clock for the configuration store.</summary>
+			<returns>Returns <see cref="T:System.DateTime"></see>.</returns>
+			<param name="transactionContext">The transaction context object.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.GetValue(System.Object,System.String,System.String)">
+			<summary>Retrieves the value of a specific entry in the configuration store.</summary>
+			<returns>The value of a specified entry in the configuration store.</returns>
+			<param name="key">The key for the entry.</param>
+			<param name="transactionContext">The transaction context.</param>
+			<param name="type">The type of the entry.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Initialize">
+			<summary>Enables the custom provider to initialize the cache cluster configuration store.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Insert(System.Object,System.String,System.String,System.Byte[],System.Int64)">
+			<summary>Inserts an entry into the configuration store.</summary>
+			<returns>Return true if the entry is successfully inserted. Return false if the entry with the same key and type already exists. For all other failures, a <see cref="T:Microsoft.ApplicationServer.Caching.ConfigStoreException"></see> must be thrown.</returns>
+			<param name="version">The version of the entry.</param>
+			<param name="key">The key of the entry.</param>
+			<param name="transactionContext">The transaction context object.</param>
+			<param name="type">The type of the entry.</param>
+			<param name="data">The value of the entry.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.IsInitialized">
+			<summary>Gets the initialization status of the configuration store.</summary>
+			<returns>Returns true if the configuration store is initialized.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Open(System.String)">
+			<summary>Initializes the configuration store with a connection string that is used for subsequent calls.</summary>
+			<param name="connectionString">The connection string to the configuration store.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.RemoveUser(System.String,System.String,System.Object)">
+			<summary>Removes a Windows account from the list of accounts that have permission t the access the configuration store.</summary>
+			<param name="user">The user name.</param>
+			<param name="state">An object that represents the state if this call is being used to rollback a previous call to <see cref="M:Microsoft.ApplicationServer.Caching.ICustomProvider.AddUser(System.String,System.String)"></see>.</param>
+			<param name="machine">The machine name.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.RetrieveStoreVersion">
+			<summary>Retrieves the version of the configuration store.</summary>
+			<returns>Returns <see cref="T:System.Version"></see>.</returns>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.TestConnection">
+			<summary>Determines whether the configuration store is available.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.ICustomProvider.Update(System.Object,System.String,System.String,System.Byte[],System.Int64)">
+			<summary>Updates an entry in the store.</summary>
+			<returns>Returns <see cref="T:System.Boolean"></see>. If the update succeeds, the return value is true. If the entry does not exist or if the version does not match, the return value is false.</returns>
+			<param name="oldVersion">The version of the entry. If this value is less than or equal to 0, the update occurs regardless of the version. If this value is greater than 0, then the update is only performed if the version of the entry matches the version provided.</param>
+			<param name="key">The key of the entry.</param>
+			<param name="transactionContext">The transaction context object.</param>
+			<param name="type">The type of the entry.</param>
+			<param name="data">The updated value of the entry.</param>
+		</member>
+		<member name="T:Microsoft.ApplicationServer.Caching.SafeStreamWriter">
+			<summary>Internal.</summary>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.SafeStreamWriter.#ctor(System.IO.Stream)">
+			<summary>Internal.</summary>
+			<param name="stream">Internal.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.SafeStreamWriter.#ctor(System.String)">
+			<summary>Internal.</summary>
+			<param name="path">Internal.</param>
+		</member>
+		<member name="M:Microsoft.ApplicationServer.Caching.SafeStreamWriter.#ctor(System.String,System.Boolean)">
+			<summary>Internal.</summary>
+			<param name="path">Internal.</param>
+			<param name="append">Internal.</param>
+		</member>
+	</members>
+</doc>

BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.Web.DistributedCache.dll


BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.WindowsFabric.Common.dll


BIN
servicestack/lib/WindowsAzure.Caching.1.7.0.0/lib/net35-full/Microsoft.WindowsFabric.Data.Common.dll


+ 20 - 188
servicestack/src/AppHost.cs

@@ -1,17 +1,18 @@
 using System;
 using System.Linq;
-using System.Configuration;
 using System.Collections.Generic;
 
 using ServiceStack;
 using ServiceStack.Api.Swagger;
+using ServiceStack.CacheAccess;
+using ServiceStack.CacheAccess.Providers;
 using ServiceStack.Common;
 using ServiceStack.Common.Web;
+using ServiceStack.Redis;
 using ServiceStack.ServiceHost;
 using ServiceStack.WebHost.Endpoints;
 using ServiceStack.WebHost.Endpoints.Formats;
 
-using ServiceStackBenchmark.Model;
 
 namespace ServiceStackBenchmark
 {
@@ -21,16 +22,6 @@ namespace ServiceStackBenchmark
 		
 		public AppHost() : base("ServiceStackBenchmark", typeof(AppHost).Assembly) { }
 
-        #region Connection Strings
-
-        private static readonly ConnectionStringSettings mySqlConnectionString = ConfigurationManager.ConnectionStrings["MySQL"];
-
-        private static readonly ConnectionStringSettings sqlServerConnectionString = ConfigurationManager.ConnectionStrings["SQLServer"];
-
-        private static readonly ConnectionStringSettings postgreSqlConnectionString = ConfigurationManager.ConnectionStrings["PostgreSQL"];
-
-        #endregion
-
         public override void Configure(Funq.Container container)
 		{
 			ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
@@ -42,191 +33,32 @@ namespace ServiceStackBenchmark
             // Add plugins
             Plugins.Add(new SwaggerFeature());
 
-            SetConfig(new EndpointHostConfig
-            {
-                DefaultRedirectPath = "/swagger-ui/index.html", // default to the Swagger page
-                DefaultContentType = ContentType.Json,
-                WriteErrorsToResponse = false,
-                EnableFeatures = Feature.All.Remove(GetDisabledFeatures()), // disable features specified in Web.Config (i.e. Soap, Metadata, etc.)
-                AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html },
-            });
-
-            // Initialize Databases
-            InitDatabases(container);
-
-		}
-
-        private static void InitDatabases(Funq.Container container)
-        {
-            // Register the MySql Database Connection Factory
-            var mySqlFactory = new MySqlOrmLiteConnectionFactory(mySqlConnectionString.ConnectionString);
-            mySqlFactory.DialectProvider.UseUnicode = true;
-            container.Register<IMySqlOrmLiteConnectionFactory>(c => mySqlFactory);
+            // Get disable features specified in Config file (i.e. Soap, Metadata, etc.)
+            var disabled = AppHostConfigHelper.GetDisabledFeatures();
 
-            // Create needed tables in MySql Server if they do not exist
-            try
-            {
-                using (var conn = mySqlFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
-
-            // Register the PostgreSQL Database Connection Factory
-            var postgreSqlFactory = new PostgreSqlOrmLiteConnectionFactory(postgreSqlConnectionString.ConnectionString);
-            postgreSqlFactory.DialectProvider.UseUnicode = true;
-            container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => postgreSqlFactory);
-
-            // Create needed tables in PostgreSql Server if they do not exist
-            try
-            {
-                using (var conn = postgreSqlFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
-
-            // Register the Microsoft Sql Server Database Connection Factory
-            var sqlServerFactory = new SqlServerOrmLiteConnectionFactory(sqlServerConnectionString.ConnectionString);
-            sqlServerFactory.DialectProvider.UseUnicode = true;
-            container.Register<ISqlServerOrmLiteConnectionFactory>(c => sqlServerFactory);
-
-            // Create needed tables in Microsoft Sql Server if they do not exist
-            try
-            {
-                using (var conn = sqlServerFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
-        }
-
-        private static Feature GetDisabledFeatures()
-        {
-            var disabled = ConfigurationManager.AppSettings.Get("DisabledFeatures");
-
-            Feature d;
-            if (!string.IsNullOrWhiteSpace(disabled) && Enum.TryParse(disabled, true, out d))
-                return d;
-
-            return Feature.None;
-        }
-
-	}
-
-    public class AppSelfHost : AppHostHttpListenerBase
-    {
-
-        public AppSelfHost() : base("ServiceStackBenchmark", typeof(AppSelfHost).Assembly) { }
-
-        #region Connection Strings
-
-        private static readonly ConnectionStringSettings mySqlConnectionString = ConfigurationManager.ConnectionStrings["MySQL"];
-
-        private static readonly ConnectionStringSettings sqlServerConnectionString = ConfigurationManager.ConnectionStrings["SQLServer"];
-
-        private static readonly ConnectionStringSettings postgreSqlConnectionString = ConfigurationManager.ConnectionStrings["PostgreSQL"];
-
-        #endregion
-
-        public override void Configure(Funq.Container container)
-        {
-            ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
-
-            // Remove some unused features that by default are included
-            Plugins.RemoveAll(p => p is CsvFormat);
-            Plugins.RemoveAll(p => p is MetadataFeature);
-
-            // Add plugins
-            Plugins.Add(new SwaggerFeature());
-
-            SetConfig(new EndpointHostConfig
+            // Construct Service Endpoint Host Configuration store
+            var config = new EndpointHostConfig
             {
                 DefaultRedirectPath = "/swagger-ui/index.html", // default to the Swagger page
                 DefaultContentType = ContentType.Json,
                 WriteErrorsToResponse = false,
-                EnableFeatures = Feature.All.Remove(GetDisabledFeatures()), // disable features specified in Web.Config (i.e. Soap, Metadata, etc.)
+                EnableFeatures = Feature.All.Remove(disabled),
                 AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html },
-            });
-
-            // Initialize Databases
-            InitDatabases(container);
+            };
 
-        }
+            // Apply configuration
+            SetConfig(config);
 
-        private static void InitDatabases(Funq.Container container)
-        {
-            // Register the MySql Database Connection Factory
-            var mySqlFactory = new MySqlOrmLiteConnectionFactory(mySqlConnectionString.ConnectionString);
-            mySqlFactory.DialectProvider.UseUnicode = true;
-            container.Register<IMySqlOrmLiteConnectionFactory>(c => mySqlFactory);
-
-            // Create needed tables in MySql Server if they do not exist
-            try
-            {
-                using (var conn = mySqlFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
-
-            // Register the PostgreSQL Database Connection Factory
-            var postgreSqlFactory = new PostgreSqlOrmLiteConnectionFactory(postgreSqlConnectionString.ConnectionString);
-            postgreSqlFactory.DialectProvider.UseUnicode = true;
-            container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => postgreSqlFactory);
-
-            // Create needed tables in PostgreSql Server if they do not exist
-            try
-            {
-                using (var conn = postgreSqlFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
+            // Initialize Databases & associated Routes
+            container.InitDatabaseRoutes(Routes);
 
-            // Register the Microsoft Sql Server Database Connection Factory
-            var sqlServerFactory = new SqlServerOrmLiteConnectionFactory(sqlServerConnectionString.ConnectionString);
-            sqlServerFactory.DialectProvider.UseUnicode = true;
-            container.Register<ISqlServerOrmLiteConnectionFactory>(c => sqlServerFactory);
+            // Register Cache Clients
+            container.Register<ICacheClient>(new MemoryCacheClient());
 
-            // Create needed tables in Microsoft Sql Server if they do not exist
-            try
-            {
-                using (var conn = sqlServerFactory.OpenDbConnection())
-                {
-                    conn.CreateWorldTable();
-                    conn.CreateFortuneTable();
-                }
-            }
-            catch
-            { }
-        }
-
-        private static Feature GetDisabledFeatures()
-        {
-            var disabled = ConfigurationManager.AppSettings.Get("DisabledFeatures");
-
-            Feature d;
-            if (!string.IsNullOrWhiteSpace(disabled) && Enum.TryParse(disabled, true, out d))
-                return d;
-
-            return Feature.None;
-        }
+            // Register Redis Client Manager
+            container.Register<IRedisClientsManager>(c =>
+                new PooledRedisClientManager("localhost:6379"));
+		}
 
-    }
+	}
 }

+ 140 - 0
servicestack/src/AppHostConfigHelper.cs

@@ -0,0 +1,140 @@
+using System;
+using System.Data;
+using System.Linq;
+using System.Configuration;
+using System.Collections.Generic;
+using ServiceStack.ServiceHost;
+using ServiceStackBenchmark.Model;
+
+namespace ServiceStackBenchmark
+{
+    public static class AppHostConfigHelper
+    {
+        public static bool InitMySQL(this Funq.Container container)
+        {
+            try
+            {
+                // Register the MySql Database Connection Factory
+                var mySqlConnectionString = ConfigurationManager.ConnectionStrings["MySQL"];
+                var mySqlFactory = new MySqlOrmLiteConnectionFactory(mySqlConnectionString.ConnectionString);
+                mySqlFactory.DialectProvider.UseUnicode = true;
+                container.Register<IMySqlOrmLiteConnectionFactory>(c => mySqlFactory);
+
+                // Create needed tables in MySql Server if they do not exist
+                using (var conn = mySqlFactory.OpenDbConnection())
+                {
+                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
+                }
+            }
+            catch (Exception ex)
+            {
+                // Unregister failed database connection factory
+                container.Register<IMySqlOrmLiteConnectionFactory>(c => null);
+
+                return false;
+            }
+
+        }
+
+        public static bool InitPostgreSQL(this Funq.Container container)
+        {
+            try
+            {
+                // Register the PostgreSQL Database Connection Factory
+                var postgreSqlConnectionString = ConfigurationManager.ConnectionStrings["PostgreSQL"];
+                var postgreSqlFactory = new PostgreSqlOrmLiteConnectionFactory(postgreSqlConnectionString.ConnectionString);
+                postgreSqlFactory.DialectProvider.UseUnicode = true;
+                container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => postgreSqlFactory);
+
+                // Create needed tables in PostgreSql Server if they do not exist
+                using (var conn = postgreSqlFactory.OpenDbConnection())
+                {
+                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
+                }
+            }
+            catch (Exception ex)
+            {
+                // Unregister failed database connection factory
+                container.Register<IPostgreSqlOrmLiteConnectionFactory>(c => null);
+
+                return false;
+            }
+
+        }
+
+        public static bool InitSQLServer(this Funq.Container container)
+        {
+            try
+            {
+                // Register the Microsoft Sql Server Database Connection Factory
+                var sqlServerConnectionString = ConfigurationManager.ConnectionStrings["SQLServer"];
+                var sqlServerFactory = new SqlServerOrmLiteConnectionFactory(sqlServerConnectionString.ConnectionString);
+                sqlServerFactory.DialectProvider.UseUnicode = true;
+                container.Register<ISqlServerOrmLiteConnectionFactory>(c => sqlServerFactory);
+
+                // Create needed tables in Microsoft Sql Server if they do not exist
+                using (var conn = sqlServerFactory.OpenDbConnection())
+                {
+                    return conn.CreateWorldTable() && conn.CreateFortuneTable();
+                }
+            }
+            catch (Exception ex)
+            {
+                // Unregister failed database connection factory
+                container.Register<ISqlServerOrmLiteConnectionFactory>(c => null);
+
+                return false;
+            }
+
+        }
+
+        public static void InitDatabaseRoutes(this Funq.Container container, IServiceRoutes routes)
+        {
+            if (container.InitMySQL())
+            {
+                routes.Add<MySqlDbRequest>("/mysql/db", "GET");
+                routes.Add<MySqlQueriesRequest>("/mysql/queries/{queries}", "GET");
+                routes.Add<MySqlFortunesRequest>("/mysql/fortunes", "GET");
+                routes.Add<MySqlUpdatesRequest>("/mysql/updates/{queries}", "GET");
+                routes.Add<MySqlCachedDbRequest>("/mysql/cached/db", "GET");
+            }
+
+            if (container.InitPostgreSQL())
+            {
+                routes.Add<PostgreSqlDbRequest>("/postgresql/db", "GET");
+                routes.Add<PostgreSqlQueriesRequest>("/postgresql/queries/{queries}", "GET");
+                routes.Add<PostgreSqlFortunesRequest>("/postgresql/fortunes", "GET");
+                routes.Add<PostgreSqlUpdatesRequest>("/postgresql/updates/{queries}", "GET");
+                routes.Add<PostgreSqlCachedDbRequest>("/postgresql/cached/db", "GET");
+            }
+
+            if (container.InitSQLServer())
+            {
+                routes.Add<SqlServerDbRequest>("/sqlserver/db", "GET");
+                routes.Add<SqlServerQueriesRequest>("/sqlserver/queries/{queries}", "GET");
+                routes.Add<SqlServerFortunesRequest>("/sqlserver/fortunes", "GET");
+                routes.Add<SqlServerUpdatesRequest>("/sqlserver/updates/{queries}", "GET");
+                routes.Add<SqlServerCachedDbRequest>("/sqlserver/cached/db", "GET");
+            }
+        }
+
+        public static Feature GetDisabledFeatures()
+        {
+            try
+            {
+                var disabled = ConfigurationManager.AppSettings.Get("DisabledFeatures");
+
+                Feature d;
+                if (Enum.TryParse(disabled, true, out d))
+                    return d;
+
+                return Feature.None;
+            }
+            catch
+            {
+                return Feature.None;
+            }
+
+        }
+    }
+}

+ 11 - 2
servicestack/src/Model/Fortune.cs

@@ -35,9 +35,12 @@ namespace ServiceStackBenchmark.Model
             return db.Select<Fortune>();
         }
 
-        public static void CreateFortuneTable(this IDbConnection db)
+        public static bool CreateFortuneTable(this IDbConnection db)
         {
-            if (!db.TableExists("Fortune"))
+            if (db.TableExists("Fortune"))
+                return true;
+
+            try
             {
                 db.CreateTable<Fortune>();
 
@@ -56,6 +59,12 @@ namespace ServiceStackBenchmark.Model
                 fortunes.Add(new Fortune() { id = 11, message = "&lt;script&gt;alert(\"This should not be displayed in a browser alert box.\");&lt;/script&gt;" });
                 fortunes.Add(new Fortune() { id = 12, message = "フレームワークのベンチマーク" });
                 db.Insert<Fortune>(fortunes.ToArray());
+
+                return true;
+            }
+            catch
+            {
+                return false;
             }
         }
 

+ 65 - 29
servicestack/src/Model/World.cs

@@ -2,7 +2,10 @@
 using System.Collections.Generic;
 using System.Data;
 using System.Linq;
+using System.Threading.Tasks;
 
+using ServiceStack.CacheAccess;
+using ServiceStack.Common;
 using ServiceStack.DataAnnotations;
 using ServiceStack.OrmLite;
 
@@ -19,57 +22,90 @@ namespace ServiceStackBenchmark.Model
     public static class WorldMethods
     {
 
-        public static World GetRandomWorld(this IDbConnection db, Random randomizer)
+        public static World GetWorld(this IDbConnection db, int id)
         {
-            int id = randomizer.Next(1, 10000);
+            // retrieve the World with passed id
             return db.GetById<World>(id);
         }
 
-        public static List<World> GetRandomWorlds(this IDbConnection db, int count, Random randomizer)
+        public static List<World> GetWorlds(this IDbConnection db)
         {
-            var worlds = new List<World>(count);
+            // retrieve all Worlds
+            return db.Select<World>();
+        }
+
+        public static List<World> GetWorlds(this IDbConnection db, IEnumerable<int> ids)
+        {
+            // retrieve the Worlds included passed ids
+            return db.GetByIds<World>(ids);
+        }
+
+        public static List<World> UpdateWorlds(this IDbConnection db, IEnumerable<int> ids)
+        {
+            // get the worlds for the passed ids
+            var worlds = db.GetByIds<World>(ids);
 
-            for (int i = 0; i < count; ++i)
+            // concurrently update each world with a new random number
+            Parallel.ForEach(worlds, w =>
             {
-                worlds.Add(GetRandomWorld(db, randomizer));
-            }
+                lock (worlds)
+                {
+                    w.randomNumber = SafeRandom.Instance.Next(1, 10000);
+                }
+            });
 
+            // update the dataase with the above changes
+            db.UpdateAll<World>(worlds);
+
+            // return updated collection
             return worlds;
         }
 
-        public static World UpdateRandomWorld(this IDbConnection db, Random randomizer)
+        public static void CacheAllWorlds(this IDbConnection db, ICacheClient cache)
         {
-            var world = db.GetRandomWorld(randomizer);
-            world.randomNumber = randomizer.Next(1, 10000);
-            db.Update<World>(world);
-            return world;
-        }
+            cache.FlushAll();
 
-        public static List<World> UpdateRandomWorlds(this IDbConnection db, int count, Random randomizer)
-        {
-            var worlds = new List<World>(count);
+            // concurrently create a list of world ids
+            var worlds = db.GetWorlds();
 
-            for (int i = 0; i < count; ++i)
+            Parallel.ForEach<World>(worlds, w =>
             {
-                worlds.Add(UpdateRandomWorld(db, randomizer));
-            }
-            return worlds;
+                var cacheKey = UrnId.Create<World>("Id", w.id.ToString());
+
+                cache.Set<World>(cacheKey, w);
+            });
         }
 
-        public static void CreateWorldTable(this IDbConnection db)
+        public static bool CreateWorldTable(this IDbConnection db)
         {
-            if (!db.TableExists("World"))
+            // only create table if it does not already exist
+            if (db.TableExists("World"))
+                return true;
+
+            try
             {
+                // create the database table based on model
                 db.CreateTable<World>();
 
-                // Populate the table
-                var randomizer = new Random();
-                var worlds = new List<World>();
-                for (int i = 1; i < 10000; i++)
-                {
-                    worlds.Add(new World() { id = i, randomNumber = randomizer.Next(1, 10000) });
-                }
+                // populate the table
+                var worlds = new List<World>(10000);
+                Parallel.For(0, 10000, i =>
+                    {
+                        lock (worlds)
+                        {
+                            worlds.Add(new World() { id = i, randomNumber = SafeRandom.Instance.Next(1, 10000) });
+                        }
+
+                    });
+
+                // insert new records into database
                 db.Insert<World>(worlds.ToArray());
+
+                return true;
+            }
+            catch
+            {
+                return false;
             }
         }
 

+ 33 - 0
servicestack/src/Properties/AssemblyInfo.cs

@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ServiceStackBenchmark.Properties")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ServiceStackBenchmark.Properties")]
+[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("b93603f5-a9d3-483e-b26b-1e6fc272c078")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 72 - 0
servicestack/src/SafeRandom.cs

@@ -0,0 +1,72 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace ServiceStackBenchmark
+{
+    internal sealed class SafeRandom
+    {
+        private static volatile SafeRandom instance;
+
+        private static object syncRoot = new object();
+
+        private static Random random;
+
+        private SafeRandom()
+        {
+            random = new Random();
+        }
+
+        public int Next()
+        {
+            int result;
+
+            lock (random)
+            {
+                result = random.Next();
+            }
+            return result;
+        }
+
+        public int Next(int maxValue)
+        {
+            int result;
+
+            lock (random)
+            {
+                result = random.Next(maxValue);
+            }
+            return result;
+        }
+
+        public int Next(int minValue, int maxValue)
+        {
+            int result;
+
+            lock (random)
+            {
+                result = random.Next(minValue, maxValue);
+            }
+            return result;
+        }
+
+        public static SafeRandom Instance
+        {
+            get
+            {
+                if (instance == null)
+                {
+                    lock (syncRoot)
+                    {
+                        if (instance == null)
+                        {
+                            instance = new SafeRandom();
+                        }
+                    }
+                }
+
+                return instance;
+            }
+        }
+    }
+}

+ 5 - 1
servicestack/src/SelfHost/App.config

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
-  <startup> 
+  <startup>
     <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
   </startup>
   <connectionStrings>
@@ -22,6 +22,10 @@
         <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="AWSSDK" publicKeyToken="9f476d3089b52be3" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.5.28.3" newVersion="1.5.28.3" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>
 </configuration>

+ 85 - 0
servicestack/src/SelfHost/AppHostSelfHelper.cs

@@ -0,0 +1,85 @@
+using System;
+using System.Linq;
+using System.Net;
+using System.Collections.Generic;
+using System.Diagnostics;
+
+namespace ServiceStackBenchmark
+{
+    public static class AppHostSelfHelper
+    {
+        public static bool IsMono()
+        {
+            return Type.GetType("Mono.Runtime") != null;
+        }
+
+        public static void StartListening(this AppSelfHost appHost, string urlBase)
+        {
+            var addedURLToACL = false;
+
+            try
+            {
+                appHost.Start(urlBase);
+            }
+            catch (HttpListenerException ex)
+            {
+                if (IsMono())
+                    throw ex;
+
+                if (ex.ErrorCode == 5)
+                {
+                    AppHostSelfHelper.AddAddress(urlBase);
+                    addedURLToACL = true;
+                    appHost.Start(urlBase);
+                }
+            }
+
+            Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, urlBase);
+            Console.WriteLine("Press <Esc> to stop.");
+            do { } while (Console.ReadKey(true).Key != ConsoleKey.Escape);
+
+            if (addedURLToACL)
+                AppHostSelfHelper.DeleteAddress(urlBase);
+        }
+
+
+        #region Methods to Handle URL Listening with ACL Permissions
+
+        public static void AddAddress(string address)
+        {
+            AddAddress(address, Environment.UserDomainName, Environment.UserName);
+        }
+
+        public static void AddAddress(string address, string domain, string user)
+        {
+            string args = string.Format(@"http add urlacl url={0} user={1}\{2} listen=yes", address, domain, user);
+
+            var psi = new ProcessStartInfo("netsh", args)
+            {
+                Verb = "runas",
+                CreateNoWindow = true,
+                WindowStyle = ProcessWindowStyle.Hidden,
+                UseShellExecute = true
+            };
+
+            Process.Start(psi).WaitForExit();
+        }
+
+        public static void DeleteAddress(string address)
+        {
+            string args = string.Format(@"http delete urlacl url={0}", address);
+
+            var psi = new ProcessStartInfo("netsh", args)
+            {
+                CreateNoWindow = true,
+                WindowStyle = ProcessWindowStyle.Hidden,
+                UseShellExecute = true
+            };
+
+            Process.Start(psi).WaitForExit();
+        }
+
+
+        #endregion
+    }
+}

+ 55 - 0
servicestack/src/SelfHost/AppSelfHost.cs

@@ -0,0 +1,55 @@
+using System;
+using System.Linq;
+using System.Collections.Generic;
+using ServiceStack;
+using ServiceStack.CacheAccess;
+using ServiceStack.CacheAccess.Providers;
+using ServiceStack.Common;
+using ServiceStack.Common.Web;
+using ServiceStack.Redis;
+using ServiceStack.ServiceHost;
+using ServiceStack.WebHost.Endpoints;
+using ServiceStack.WebHost.Endpoints.Formats;
+
+namespace ServiceStackBenchmark
+{
+    public class AppSelfHost : AppHostHttpListenerBase
+    {
+
+        public AppSelfHost() : base("ServiceStackBenchmark", typeof(AppHost).Assembly) { }
+
+        public override void Configure(Funq.Container container)
+        {
+            ServiceStack.Text.JsConfig.EmitCamelCaseNames = true;
+
+            // Remove some unused features that by default are included
+            Plugins.RemoveAll(p => p is CsvFormat);
+            Plugins.RemoveAll(p => p is MetadataFeature);
+
+            // Get disable features specified in Config file (i.e. Soap, Metadata, etc.)
+            var disabled = AppHostConfigHelper.GetDisabledFeatures();
+
+            // Construct Service Endpoint Host Configuration store
+            var config = new EndpointHostConfig
+            {
+                DefaultContentType = ContentType.Json,
+                WriteErrorsToResponse = false,
+                EnableFeatures = Feature.All.Remove(disabled),
+                AppendUtf8CharsetOnContentTypes = new HashSet<string> { ContentType.Html },
+            };
+
+            // Apply configuration
+            SetConfig(config);
+
+            // Initialize Databases & associated Routes
+            container.InitDatabaseRoutes(Routes);
+
+            // Register Cache Clients
+            container.Register<ICacheClient>(new MemoryCacheClient());
+
+            // Register Redis Client Manager
+            container.Register<IRedisClientsManager>(c =>
+                new PooledRedisClientManager("localhost:6379"));
+        }
+    }
+}

+ 2 - 6
servicestack/src/SelfHost/Program.cs

@@ -1,7 +1,6 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
-using System.Threading;
 
 using ServiceStackBenchmark;
 
@@ -18,16 +17,13 @@ namespace ServiceStackBenchmark.SelfHost
                 try
                 {
                     appHost.Init();
-                    appHost.Start(listeningOn);
 
-                    Console.WriteLine("AppHost Created at {0}, listening on {1}", DateTime.Now, listeningOn);
-                    Console.WriteLine("Press <CTRL>+C to stop.");
-                    Thread.Sleep(Timeout.Infinite);
+                    // TODO: switch to Start after the next ServiceStack deployment (added to framework on commit #806)
+                    appHost.StartListening(listeningOn);
                 }
                 catch (Exception ex)
                 {
                     Console.WriteLine("ERROR: {0}: {1}", ex.GetType().Name, ex.Message);
-                    throw;
                 }
                 finally
                 {

+ 54 - 8
servicestack/src/SelfHost/ServiceStackBenchmark.SelfHost.csproj

@@ -36,6 +36,46 @@
   <PropertyGroup>
     <ApplicationManifest>app.manifest</ApplicationManifest>
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x86\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\x86\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\x64\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>bin\x64\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+    <Prefer32Bit>true</Prefer32Bit>
+  </PropertyGroup>
   <ItemGroup>
     <Reference Include="ServiceStack">
       <HintPath>..\..\lib\ServiceStack.3.9.56\lib\net35\ServiceStack.dll</HintPath>
@@ -49,11 +89,9 @@
     <Reference Include="ServiceStack.OrmLite">
       <HintPath>..\..\lib\ServiceStack.OrmLite.SqlServer.3.9.56\lib\ServiceStack.OrmLite.dll</HintPath>
     </Reference>
-    <Reference Include="ServiceStack.OrmLite.SqlServer">
-      <HintPath>..\..\lib\ServiceStack.OrmLite.SqlServer.3.9.56\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
-    </Reference>
-    <Reference Include="ServiceStack.Redis">
-      <HintPath>..\..\lib\ServiceStack.Redis.3.9.56\lib\net35\ServiceStack.Redis.dll</HintPath>
+    <Reference Include="ServiceStack.Redis, Version=3.9.57.0, Culture=neutral, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\..\lib\ServiceStack.Redis.3.9.57\lib\net35\ServiceStack.Redis.dll</HintPath>
     </Reference>
     <Reference Include="ServiceStack.ServiceInterface">
       <HintPath>..\..\lib\ServiceStack.3.9.56\lib\net35\ServiceStack.ServiceInterface.dll</HintPath>
@@ -70,13 +108,13 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="AppHostSelfHelper.cs" />
+    <Compile Include="AppSelfHost.cs" />
     <Compile Include="Program.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
   </ItemGroup>
   <ItemGroup>
-    <None Include="App.config">
-      <SubType>Designer</SubType>
-    </None>
+    <None Include="App.config" />
     <None Include="app.manifest" />
     <None Include="packages.config" />
   </ItemGroup>
@@ -86,8 +124,16 @@
       <Name>ServiceStackBenchmark</Name>
     </ProjectReference>
   </ItemGroup>
+  <ItemGroup>
+    <AvailableItemName Include="RootContent">
+      <Visible>false</Visible>
+    </AvailableItemName>
+  </ItemGroup>
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+  <Target Name="AfterBuild">
+    <Copy DestinationFolder="$(OutputPath)" SourceFiles="@(RootContent)" SkipUnchangedFiles="true" />
+  </Target>
   <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.
   <Target Name="BeforeBuild">

+ 2 - 2
servicestack/src/SelfHost/app.manifest

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <assemblyIdentity version="1.0.0.0" name="ServiceStackBenchmark.SelfHost"/>
   <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
     <security>
       <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
@@ -16,7 +16,7 @@
             If you want to utilize File and Registry Virtualization for backward 
             compatibility then delete the requestedExecutionLevel node.
         -->
-        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
+        <!-- requestedExecutionLevel level="requireAdministrator" uiAccess="true" / -->
       </requestedPrivileges>
     </security>
   </trustInfo>

+ 1 - 1
servicestack/src/SelfHost/packages.config

@@ -3,6 +3,6 @@
   <package id="ServiceStack" version="3.9.56" targetFramework="net45" />
   <package id="ServiceStack.Common" version="3.9.56" targetFramework="net45" />
   <package id="ServiceStack.OrmLite.SqlServer" version="3.9.56" targetFramework="net45" />
-  <package id="ServiceStack.Redis" version="3.9.56" targetFramework="net45" />
+  <package id="ServiceStack.Redis" version="3.9.57" targetFramework="net45" />
   <package id="ServiceStack.Text" version="3.9.56" targetFramework="net45" />
 </packages>

+ 186 - 0
servicestack/src/Service/MySqlService.cs

@@ -0,0 +1,186 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+using ServiceStack.Common;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+using ServiceStackBenchmark.Model;
+
+namespace ServiceStackBenchmark
+{
+
+    #region MySQL Service Requests
+
+    [Api("Test #2 using Service Stack, ORMLite, and MySQL")]
+    public class MySqlDbRequest : IReturn<World>
+    { }
+
+    [Api("Test #3 using Service Stack, ORMLite, and MySQL")]
+    public class MySqlQueriesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #4 using Service Stack, ORMLite, and MySQL")]
+    public class MySqlFortunesRequest : IReturn<List<Fortune>>
+    { }
+
+    [Api("Test #5 using Service Stack, ORMLite, and MySQL")]
+    public class MySqlUpdatesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #7 using Service Stack, ORMLite, and MySQL with Caching")]
+    public class MySqlCachedDbRequest : IReturn<World>
+    { }
+
+    #endregion
+
+    /// <summary>Service Stack tests using MySQL provider and ORMLite</summary>
+    public class MySqlService : Service
+    {
+        private const string dbType = "MySql";
+
+        #region Public Properties
+
+        public IMySqlOrmLiteConnectionFactory dbFactory { get; set; }
+
+        #endregion
+
+        #region Public Service Methods
+
+        public object Get(MySqlDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // retrieve world from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorld(id);
+            }
+        }
+
+        public object Get(MySqlQueriesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to retrieve
+            var ids = new List<int>();
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // retrieve worlds associated with ids
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorlds(ids);
+            }
+        }
+
+        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
+        public object Get(MySqlFortunesRequest request)
+        {
+            var fortunes = new List<Fortune>();
+
+            // retrieve fortunes from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                fortunes = db.GetFortunes();
+            }
+
+            // add additional fortune record
+            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
+
+            // sort fortunes
+            fortunes.Sort();
+
+            // construct HTML page using template and return
+            return FortuneMethods.ToHtml(fortunes);
+        }
+
+        public object Get(MySqlUpdatesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to update
+            var ids = new List<int>(worldCount);
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // purge cache client
+            Cache.FlushAll();
+
+            // update the worlds
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.UpdateWorlds(ids);
+            }
+        }
+
+        public object Get(MySqlCachedDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // create the cache key for the random world id
+            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
+
+            // if world is cached, return it
+            var world = Cache.Get<World>(cacheKey);
+            if (world != null)
+                return world;
+
+            // get all of the worlds form the database
+            List<World> worlds;
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                worlds = db.GetWorlds();
+            }
+
+            // construct a cache dictionary
+            var cacheDict = new Dictionary<string, World>();
+            Parallel.ForEach(worlds, w =>
+            {
+                // collect the current result
+                if (w.id == id)
+                    world = w;
+
+                // add world to cache dictionary
+                var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
+                lock (cacheDict)
+                {
+                    cacheDict.Add(key, w);
+                }
+            });
+
+            // populate cache
+            Cache.SetAll<World>(cacheDict);
+
+            // return current request
+            return world;
+        }
+
+        #endregion
+    }
+
+}

+ 187 - 0
servicestack/src/Service/PostgreSqlService.cs

@@ -0,0 +1,187 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+using ServiceStack.CacheAccess;
+using ServiceStack.Common;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+using ServiceStackBenchmark.Model;
+
+namespace ServiceStackBenchmark
+{
+
+    #region PostgreSQL Service Requests
+
+    [Api("Test #2 using Service Stack, ORMLite, and PostgreSQL")]
+    public class PostgreSqlDbRequest : IReturn<World>
+    { }
+
+    [Api("Test #3 using Service Stack, ORMLite, and PostgreSQL")]
+    public class PostgreSqlQueriesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #4 using Service Stack, ORMLite, and PostgreSQL")]
+    public class PostgreSqlFortunesRequest : IReturn<List<Fortune>>
+    { }
+
+    [Api("Test #5 using Service Stack, ORMLite, and PostgreSQL")]
+    public class PostgreSqlUpdatesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #7 using Service Stack, ORMLite, and PostgreSQL with Caching")]
+    public class PostgreSqlCachedDbRequest : IReturn<World>
+    { }
+
+    #endregion
+
+    /// <summary>Service Stack tests using PostgreSQL provider and ORMLite</summary>
+    public class PostgreSqlService : Service
+    {
+        private const string dbType = "PgSql";
+
+        #region Public Properties
+
+        public IPostgreSqlOrmLiteConnectionFactory dbFactory { get; set; }
+
+        #endregion
+
+        #region Public Service Methods
+
+        public object Get(PostgreSqlDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // retrieve world from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorld(id);
+            }
+        }
+
+        public object Get(PostgreSqlQueriesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to retrieve
+            var ids = new List<int>();
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // retrieve worlds associated with ids
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorlds(ids);
+            }
+        }
+
+        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
+        public object Get(PostgreSqlFortunesRequest request)
+        {
+            var fortunes = new List<Fortune>();
+
+            // retrieve fortunes from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                fortunes = db.GetFortunes();
+            }
+
+            // add additional fortune record
+            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
+
+            // sort fortunes
+            fortunes.Sort();
+
+            // construct HTML page using template and return
+            return FortuneMethods.ToHtml(fortunes);
+        }
+
+        public object Get(PostgreSqlUpdatesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to update
+            var ids = new List<int>(worldCount);
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // purge cache client
+            Cache.FlushAll();
+
+            // update the worlds
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.UpdateWorlds(ids);
+            }
+        }
+
+        public object Get(PostgreSqlCachedDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // create the cache key for the random world id
+            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
+
+            // if world is cached, return it
+            var world = Cache.Get<World>(cacheKey);
+            if (world != null)
+                return world;
+
+            // get all of the worlds form the database
+            List<World> worlds;
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                worlds = db.GetWorlds();
+            }
+
+            // construct a cache dictionary
+            var cacheDict = new Dictionary<string, World>();
+            Parallel.ForEach(worlds, w =>
+            {
+                // collect the current result
+                if (w.id == id)
+                    world = w;
+
+                // add world to cache dictionary
+                var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
+                lock (cacheDict)
+                {
+                    cacheDict.Add(key, w);
+                }
+            });
+
+            // populate cache
+            Cache.SetAll<World>(cacheDict);
+
+            // return current request
+            return world;
+        }
+
+        #endregion
+    }
+
+}

+ 99 - 0
servicestack/src/Service/Services.cs

@@ -0,0 +1,99 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+
+using ServiceStack.CacheAccess;
+using ServiceStack.CacheAccess.Providers;
+using ServiceStack.CacheAccess.Memcached;
+using ServiceStack.CacheAccess.AwsDynamoDb;
+using ServiceStack.CacheAccess.Azure;
+using ServiceStack.Common.Web;
+using ServiceStack.Redis;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+namespace ServiceStackBenchmark
+{
+
+    #region Hello World Services
+
+    [Api("Test #1 (JSON serialization) using Service Stack")]
+    [Route("/json", "GET")]
+    public class JsonRequest { }
+
+    public class JsonService : Service
+    {
+        public object Get(JsonRequest request)
+        {
+            var response = new { message = "Hello, World!" };
+            return response;
+        }
+    }
+
+    [Api("Test #6 (Plaintext) using Service Stack")]
+    [Route("/plaintext", "GET")]
+    public class PlainTextRequest { }
+
+    public class PlainTextService : Service
+    {
+        public object Get(PlainTextRequest request)
+        {
+            var response = new HttpResult("Hello, World!", "text/plain");
+            return response;
+        }
+    }
+
+
+    [Api("Set Cache Provider")]
+    [Route("/cacheprovider/{provider}", "GET")]
+    public class SetCacheProviderRequest 
+    {
+        [ApiMember(Name ="provider", Description = "Cache Provider", DataType = "string", IsRequired = true)]
+        [ApiAllowableValues("provider", new string[] { "inmem", "memcache", "redis", "aws", "azure" })]
+        public string provider { get; set; }    
+    }
+
+    public class CacheProviderService : Service
+    {
+        public object Any(SetCacheProviderRequest request)
+        {
+            try
+            {
+                switch (request.provider)
+                {
+                    case "memcache":
+                        var memcache = new MemcachedClientCache();
+                        AppHost.Instance.Container.Register<ICacheClient>(memcache);
+                        return new HttpResult("Cache Provider switched to MemCache.");
+
+                    case "redis":
+                        AppHost.Instance.Container.Register<ICacheClient>(c => c.Resolve<IRedisClientsManager>().GetCacheClient());
+                        return new HttpResult("Cache Provider switched to Redis.");
+
+                    case "aws":
+                        var aws = new DynamoDbCacheClient("", "", Amazon.RegionEndpoint.APSoutheast1);
+                        AppHost.Instance.Container.Register<ICacheClient>(aws);
+                        return new HttpResult("Cache Provider switched to Amazon Web Service DynamoDb Cache Client.");
+
+                    case "azure":
+                        AppHost.Instance.Container.Register<ICacheClient>(new AzureCacheClient("default"));
+                        return new HttpResult("Cache Provider switched to Microsoft Azure Cache Client.");
+
+                    default:
+                        AppHost.Instance.Container.Register<ICacheClient>(new MemoryCacheClient());
+                        return new HttpResult("Cache Provider switched to In-Memory Cache Client.");
+                }
+            }
+            catch
+            {
+                throw;
+            }
+        }
+    }
+
+
+    #endregion
+
+
+
+}

+ 187 - 0
servicestack/src/Service/SqlServerService.cs

@@ -0,0 +1,187 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+using ServiceStack.Common;
+using ServiceStack.ServiceHost;
+using ServiceStack.ServiceInterface;
+
+using ServiceStackBenchmark.Model;
+
+namespace ServiceStackBenchmark
+{
+
+    #region Microsoft SQL Server Service Requests
+
+    [Api("Test #2 using Service Stack, ORMLite, and Microsoft SQL Server")]
+    public class SqlServerDbRequest : IReturn<World>
+    { }
+
+    [Api("Test #3 using Service Stack, ORMLite, and Microsoft SQL Server")]
+    public class SqlServerQueriesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #4 using Service Stack, ORMLite, and Microsoft SQL Server")]
+    public class SqlServerFortunesRequest : IReturn<List<Fortune>>
+    { }
+
+    [Api("Test #5 using Service Stack, ORMLite, and Microsoft SQL Server")]
+    public class SqlServerUpdatesRequest : IReturn<List<World>>
+    {
+        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
+        [ApiAllowableValues("queries", 1, 500)]
+        public int queries { get; set; }
+    }
+
+    [Api("Test #7 using Service Stack, ORMLite, and Microsoft SQL Server with Caching")]
+    public class SqlServerCachedDbRequest : IReturn<World>
+    { }
+
+    #endregion
+
+    /// <summary>Service Stack tests using Microsoft SQL Server provider and ORMLite</summary>
+    public class SqlServerService : Service
+    {
+        private const string dbType = "SqlSrvr";
+
+        #region Public Properties
+
+        public ISqlServerOrmLiteConnectionFactory dbFactory { get; set; }
+
+        #endregion
+
+        #region Public Service Methods
+
+        public object Get(SqlServerDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // retrieve world from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorld(id);
+            }
+        }
+
+        public object Get(SqlServerQueriesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to retrieve
+            var ids = new List<int>();
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // retrieve worlds associated with ids
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.GetWorlds(ids);
+            }
+        }
+
+        [AddHeader(ContentType = ServiceStack.Common.Web.ContentType.Html)]
+        public object Get(SqlServerFortunesRequest request)
+        {
+            var fortunes = new List<Fortune>();
+
+            // retrieve fortunes from database
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                fortunes = db.GetFortunes();
+            }
+
+            // add additional fortune record
+            fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
+
+            // sort fortunes
+            fortunes.Sort();
+
+            // construct HTML page using template and return
+            return FortuneMethods.ToHtml(fortunes);
+        }
+
+        public object Get(SqlServerUpdatesRequest request)
+        {
+            // limit queries to be between 1 and 500 iterations
+            var worldCount = Math.Max(1, Math.Min(500, (int)request.queries));
+
+            // concurrently create a list of random world ids to update
+            var ids = new List<int>(worldCount);
+            Parallel.For(0, worldCount, i =>
+            {
+                lock (ids)
+                {
+                    ids.Add(SafeRandom.Instance.Next(1, 10000));
+                }
+            });
+
+            // purge cache client
+            Cache.FlushAll();
+
+            // update the worlds
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                return db.UpdateWorlds(ids);
+            }
+        }
+
+        public object Get(SqlServerCachedDbRequest request)
+        {
+            // get a random world id
+            var id = SafeRandom.Instance.Next(1, 10000);
+
+            // create the cache key for the random world id
+            var cacheKey = UrnId.CreateWithParts<World>(new string[] { dbType, id.ToString() });
+
+            // if world is cached, return it
+            var world = Cache.Get<World>(cacheKey);
+            if (world != null)
+                return world;
+
+            // get all of the worlds form the database
+            List<World> worlds;
+            using (var db = dbFactory.OpenDbConnection())
+            {
+                worlds = db.GetWorlds();
+            }
+
+            // construct a cache dictionary
+            var cacheDict = new Dictionary<string,World>();
+            Parallel.ForEach(worlds, w =>
+                {
+                    // collect the current result
+                    if (w.id == id)
+                        world = w;
+
+                    // add world to cache dictionary
+                    var key = UrnId.CreateWithParts<World>(new string[] { dbType, w.id.ToString() });
+                    lock (cacheDict)
+                    {
+                        cacheDict.Add(key, w);
+                    }
+                });
+
+            // populate cache
+            Cache.SetAll<World>(cacheDict);
+
+            // return current request
+            return world;
+        }
+
+        #endregion
+
+    }
+
+}

+ 91 - 5
servicestack/src/ServiceStackBenchmark.csproj

@@ -40,7 +40,65 @@
   <PropertyGroup>
     <StartupObject />
   </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x86'">
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x86</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
+    <DebugSymbols>true</DebugSymbols>
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <DebugType>full</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
+    <OutputPath>bin\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <Optimize>true</Optimize>
+    <DebugType>pdbonly</DebugType>
+    <PlatformTarget>x64</PlatformTarget>
+    <ErrorReport>prompt</ErrorReport>
+    <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
+  </PropertyGroup>
   <ItemGroup>
+    <Reference Include="AWSSDK, Version=1.5.28.3, Culture=neutral, PublicKeyToken=9f476d3089b52be3, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>..\lib\AWSSDK.1.5.28.3\lib\AWSSDK.dll</HintPath>
+    </Reference>
+    <Reference Include="Enyim.Caching">
+      <HintPath>..\lib\EnyimMemcached.2.12\lib\net35\Enyim.Caching.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.ApplicationServer.Caching.Client">
+      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.ApplicationServer.Caching.Client.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.ApplicationServer.Caching.Core">
+      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.ApplicationServer.Caching.Core.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.Web.DistributedCache">
+      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.Web.DistributedCache.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsFabric.Common">
+      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.WindowsFabric.Common.dll</HintPath>
+    </Reference>
+    <Reference Include="Microsoft.WindowsFabric.Data.Common">
+      <HintPath>..\lib\WindowsAzure.Caching.1.7.0.0\lib\net35-full\Microsoft.WindowsFabric.Data.Common.dll</HintPath>
+    </Reference>
     <Reference Include="Mono.Security">
       <HintPath>..\lib\Npgsql.2.0.12.1\lib\net40\Mono.Security.dll</HintPath>
     </Reference>
@@ -62,6 +120,15 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\lib\ServiceStack.Api.Swagger.3.9.56\lib\net35\ServiceStack.Api.Swagger.dll</HintPath>
     </Reference>
+    <Reference Include="ServiceStack.CacheAccess.AwsDynamoDb">
+      <HintPath>..\lib\ServiceStack.Caching.AwsDynamoDb.3.9.55\lib\ServiceStack.CacheAccess.AwsDynamoDb.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.CacheAccess.Azure">
+      <HintPath>..\lib\ServiceStack.Caching.Azure.3.9.55\lib\ServiceStack.CacheAccess.Azure.dll</HintPath>
+    </Reference>
+    <Reference Include="ServiceStack.CacheAccess.Memcached">
+      <HintPath>..\lib\ServiceStack.Caching.Memcached.3.9.55\lib\ServiceStack.CacheAccess.Memcached.dll</HintPath>
+    </Reference>
     <Reference Include="ServiceStack.Common, Version=3.9.56.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\lib\ServiceStack.Common.3.9.56\lib\net35\ServiceStack.Common.dll</HintPath>
@@ -70,9 +137,9 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\lib\ServiceStack.Common.3.9.56\lib\net35\ServiceStack.Interfaces.dll</HintPath>
     </Reference>
-    <Reference Include="ServiceStack.OrmLite, Version=3.9.56.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="ServiceStack.OrmLite, Version=3.9.57.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.OrmLite.SqlServer.3.9.56\lib\ServiceStack.OrmLite.dll</HintPath>
+      <HintPath>..\lib\ServiceStack.OrmLite.MySql.3.9.57\lib\ServiceStack.OrmLite.dll</HintPath>
     </Reference>
     <Reference Include="ServiceStack.OrmLite.MySql, Version=3.9.57.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -86,9 +153,9 @@
       <SpecificVersion>False</SpecificVersion>
       <HintPath>..\lib\ServiceStack.OrmLite.SqlServer.3.9.56\lib\ServiceStack.OrmLite.SqlServer.dll</HintPath>
     </Reference>
-    <Reference Include="ServiceStack.Redis, Version=3.9.49.0, Culture=neutral, processorArchitecture=MSIL">
+    <Reference Include="ServiceStack.Redis, Version=3.9.57.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
-      <HintPath>..\lib\ServiceStack.Redis.3.9.56\lib\net35\ServiceStack.Redis.dll</HintPath>
+      <HintPath>..\lib\ServiceStack.Redis.3.9.57\lib\net35\ServiceStack.Redis.dll</HintPath>
     </Reference>
     <Reference Include="ServiceStack.ServiceInterface, Version=3.9.56.0, Culture=neutral, processorArchitecture=MSIL">
       <SpecificVersion>False</SpecificVersion>
@@ -136,12 +203,18 @@
     </Content>
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="AppHostConfigHelper.cs" />
     <Compile Include="Model\Fortune.cs" />
-    <Compile Include="Services.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="SafeRandom.cs" />
+    <Compile Include="Service\MySqlService.cs" />
+    <Compile Include="Service\PostgreSqlService.cs" />
+    <Compile Include="Service\Services.cs" />
     <Compile Include="DbFactories\MySqlOrmLiteConnectionFactory.cs" />
     <Compile Include="DbFactories\PostgreSqlOrmLiteConnectionFactory.cs" />
     <Compile Include="DbFactories\SqlServerOrmLiteConnectionFactory.cs" />
     <Compile Include="Model\World.cs" />
+    <Compile Include="Service\SqlServerService.cs" />
     <Content Include="Global.asax" />
     <Compile Include="AppHost.cs" />
     <Compile Include="Global.asax.cs">
@@ -160,6 +233,12 @@
       <DependentUpon>Web.config</DependentUpon>
     </None>
   </ItemGroup>
+  <ItemGroup>
+    <AvailableItemName Include="RootContent">
+      <Visible>false</Visible>
+    </AvailableItemName>
+  </ItemGroup>
+  <ItemGroup />
   <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
   <PropertyGroup>
     <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">11.0</VisualStudioVersion>
@@ -170,6 +249,9 @@
   <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
     <AspNetCompiler VirtualPath="/" PhysicalPath="$(WebProjectOutputDir)" />
   </Target>
+  <Target Name="AfterBuild">
+    <Copy DestinationFolder="$(OutputPath)" SourceFiles="@(RootContent)" SkipUnchangedFiles="true" />
+  </Target>
   <ProjectExtensions>
     <VisualStudio>
       <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
@@ -180,4 +262,8 @@
     </VisualStudio>
   </ProjectExtensions>
   <Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
+  <PropertyGroup>
+    <PreBuildEvent>
+    </PreBuildEvent>
+  </PropertyGroup>
 </Project>

+ 20 - 0
servicestack/src/ServiceStackBenchmark.sln

@@ -20,17 +20,37 @@ EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
 		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x64.Build.0 = Debug|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x86.ActiveCfg = Debug|x86
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Debug|x86.Build.0 = Debug|x86
 		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|Any CPU.Build.0 = Release|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x64.ActiveCfg = Release|x64
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x64.Build.0 = Release|x64
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x86.ActiveCfg = Release|Any CPU
+		{80CF41AB-455B-4EB9-BFCC-3F8C4E1D8354}.Release|x86.Build.0 = Release|Any CPU
 		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
 		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x64.ActiveCfg = Debug|Any CPU
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x64.Build.0 = Debug|Any CPU
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x86.ActiveCfg = Debug|x86
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Debug|x86.Build.0 = Debug|x86
 		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|Any CPU.Build.0 = Release|Any CPU
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x64.ActiveCfg = Release|x64
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x64.Build.0 = Release|x64
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x86.ActiveCfg = Release|Any CPU
+		{64B2E432-0D03-40CE-9086-81FC7190D9A3}.Release|x86.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE

+ 0 - 284
servicestack/src/Services.cs

@@ -1,284 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-using ServiceStack.Common.Web;
-using ServiceStack.ServiceHost;
-using ServiceStack.ServiceInterface;
-
-using ServiceStackBenchmark.Model;
-
-namespace ServiceStackBenchmark
-{
-
-    #region Hello World Services
-
-    [Api("Test #1 (JSON serialization) using Service Stack")]
-    [Route("/json", "GET")]
-    public class JsonRequest { }
-
-    public class JsonService : Service
-    {
-        public object Get(JsonRequest request)
-        {
-            var response = new { message = "Hello, World!" };
-            return response;
-        }
-    }
-
-    [Api("Test #6 (Plaintext) using Service Stack")]
-    [Route("/plaintext", "GET")]
-    public class PlainTextRequest { }
-
-    public class PlainTextService : Service
-    {
-        public object Get(PlainTextRequest request)
-        {
-            var response = new HttpResult("Hello, World!", "text/plain");
-            return response;
-        }
-    }
-
-    #endregion
-
-    #region MySQL Services
-
-    [Api("Test #2 using Service Stack, ORMLite, and MySQL")]
-    [Route("/mysql/db", "GET")]
-    public class MySqlDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and MySQL")]
-    [Route("/mysql/queries/{queries}", "GET")]
-    public class MySqlQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and MySQL")]
-    [Route("/mysql/fortunes", "GET")]
-    public class MySqlFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and MySQL")]
-    [Route("/mysql/updates/{queries}", "GET")]
-    public class MySqlUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    /// <summary>Service Stack tests using MySQL provider and ORMLite</summary>
-    public class MySqlService : Service
-    {
-        public IMySqlOrmLiteConnectionFactory dbFactory { get; set; }
-
-        public object Get(MySqlDbRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return new HttpResult(db.GetRandomWorld(new Random()), ContentType.Json);
-            }
-        }
-
-        public object Get(MySqlQueriesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.GetRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-
-        [AddHeader(ContentType = ContentType.Html)]
-        public object Get(MySqlFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-                fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-                fortunes.Sort();
-            }
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(MySqlUpdatesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.UpdateRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-    }
-
-    #endregion
-
-    #region PostgreSQL Services
-
-    [Api("Test #2 using Service Stack, ORMLite, and PostgreSQL")]
-    [Route("/postgresql/db", "GET")]
-    public class PostgreSqlDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and PostgreSQL")]
-    [Route("/postgresql/queries/{queries}", "GET")]
-    public class PostgreSqlQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and PostgreSQL")]
-    [Route("/postgresql/fortunes", "GET")]
-    public class PostgreSqlFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and PostgreSQL")]
-    [Route("/postgresql/updates/{queries}", "GET")]
-    public class PostgreSqlUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    /// <summary>Service Stack tests using PostgreSQL provider and ORMLite</summary>
-    public class PostgreSqlService : Service
-    {
-        public IPostgreSqlOrmLiteConnectionFactory dbFactory { get; set; }
-
-        public object Get(PostgreSqlDbRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return new HttpResult(db.GetRandomWorld(new Random()), ContentType.Json);
-            }
-        }
-
-        public object Get(PostgreSqlQueriesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.GetRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-
-        [AddHeader(ContentType = ContentType.Html)]
-        public object Get(PostgreSqlFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-                fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-                fortunes.Sort();
-            }
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(PostgreSqlUpdatesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.UpdateRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-    }
-
-    #endregion
-
-    #region Microsoft SQL Server Services
-
-    [Api("Test #2 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    [Route("/sqlserver/db", "GET")]
-    public class SqlServerDbRequest : IReturn<World>
-    { }
-
-    [Api("Test #3 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    [Route("/sqlserver/queries/{queries}", "GET")]
-    public class SqlServerQueriesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    [Api("Test #4 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    [Route("/sqlserver/fortunes", "GET")]
-    public class SqlServerFortunesRequest : IReturn<List<Fortune>>
-    { }
-
-    [Api("Test #5 using Service Stack, ORMLite, and Microsoft SQL Server")]
-    [Route("/sqlserver/updates/{queries}", "GET")]
-    public class SqlServerUpdatesRequest : IReturn<List<World>>
-    {
-        [ApiMember(Name = "queries", Description = "Number of Queries to Execute", DataType = "int", IsRequired = true)]
-        [ApiAllowableValues("queries", 1, 500)]
-        public int queries { get; set; }
-    }
-
-    /// <summary>Service Stack tests using Microsoft SQL Server provider and ORMLite</summary>
-    public class SqlServerService : Service
-    {
-        public ISqlServerOrmLiteConnectionFactory dbFactory { get; set; }
-
-        public object Get(SqlServerDbRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                return new HttpResult(db.GetRandomWorld(new Random()), ContentType.Json);
-            }
-        }
-
-        public object Get(SqlServerQueriesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.GetRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-
-        [AddHeader(ContentType = ContentType.Html)]
-        public object Get(SqlServerFortunesRequest request)
-        {
-            var fortunes = new List<Fortune>();
-
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                fortunes = db.GetFortunes();
-                fortunes.Add(new Fortune { id = 0, message = "Additional fortune added at request time." });
-                fortunes.Sort();
-            }
-
-            // construct HTML page using template and return
-            return FortuneMethods.ToHtml(fortunes);
-        }
-
-        public object Get(SqlServerUpdatesRequest request)
-        {
-            using (var db = dbFactory.OpenDbConnection())
-            {
-                var worldCount = Math.Max(1, Math.Min(500, (int)request.queries)); // limit queries to be between 1 and 500 iterations
-                return new HttpResult(db.UpdateRandomWorlds(worldCount, new Random()), ContentType.Json);
-            }
-        }
-    }
-
-    #endregion
-
-}

+ 28 - 0
servicestack/src/Web.config

@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <configuration>
+  <configSections>
+    <!-- Append below entry to configSections. Do not overwrite the full section. -->
+    <section name="dataCacheClients" type="Microsoft.ApplicationServer.Caching.DataCacheClientsSection, Microsoft.ApplicationServer.Caching.Core" allowLocation="true" allowDefinition="Everywhere" />
+  </configSections>
   <connectionStrings>
     <add name="MySQL" connectionString="server=localhost; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="MySql.Data.MySqlClient" />
     <add name="PostgreSQL" connectionString="server=localhost; user id=benchmarkdbuser; password=benchmarkdbpass; database=hello_world" providerName="Npgsql" />
@@ -32,6 +36,30 @@
         <assemblyIdentity name="Npgsql" publicKeyToken="5d8b90d52f46fda7" culture="neutral" />
         <bindingRedirect oldVersion="0.0.0.0-2.0.12.0" newVersion="2.0.12.0" />
       </dependentAssembly>
+      <dependentAssembly>
+        <assemblyIdentity name="AWSSDK" publicKeyToken="9f476d3089b52be3" culture="neutral" />
+        <bindingRedirect oldVersion="0.0.0.0-1.5.28.3" newVersion="1.5.28.3" />
+      </dependentAssembly>
     </assemblyBinding>
   </runtime>  
+  <dataCacheClients>
+    <!-- DynamoDb ACS Cache Provider -->
+    <dataCacheClient name="default">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22233" />
+      </hosts>
+      <securityProperties mode="Message">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]">
+        </messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+    <dataCacheClient name="SslEndpoint">
+      <hosts>
+        <host name="[Insert Cache EndPoint]" cachePort="22243" />
+      </hosts>
+      <securityProperties mode="Message" sslEnabled="true">
+        <messageSecurity authorizationInfo="[Encrypted ACS token goes here]"></messageSecurity>
+      </securityProperties>
+    </dataCacheClient>
+  </dataCacheClients>
 </configuration>

+ 7 - 1
servicestack/src/packages.config

@@ -1,13 +1,19 @@
 <?xml version="1.0" encoding="utf-8"?>
 <packages>
+  <package id="AWSSDK" version="1.5.28.3" targetFramework="net45" />
+  <package id="EnyimMemcached" version="2.12" targetFramework="net45" />
   <package id="MySql.Data" version="6.7.4" targetFramework="net45" />
   <package id="Npgsql" version="2.0.12.1" targetFramework="net45" />
   <package id="ServiceStack" version="3.9.56" targetFramework="net45" />
   <package id="ServiceStack.Api.Swagger" version="3.9.56" targetFramework="net45" />
+  <package id="ServiceStack.Caching.AwsDynamoDb" version="3.9.55" targetFramework="net45" />
+  <package id="ServiceStack.Caching.Azure" version="3.9.55" targetFramework="net45" />
+  <package id="ServiceStack.Caching.Memcached" version="3.9.55" targetFramework="net45" />
   <package id="ServiceStack.Common" version="3.9.56" targetFramework="net45" />
   <package id="ServiceStack.OrmLite.MySql" version="3.9.57" targetFramework="net45" />
   <package id="ServiceStack.OrmLite.PostgreSQL" version="3.9.57" targetFramework="net45" />
   <package id="ServiceStack.OrmLite.SqlServer" version="3.9.56" targetFramework="net45" />
-  <package id="ServiceStack.Redis" version="3.9.56" targetFramework="net45" />
+  <package id="ServiceStack.Redis" version="3.9.57" targetFramework="net45" />
   <package id="ServiceStack.Text" version="3.9.56" targetFramework="net45" />
+  <package id="WindowsAzure.Caching" version="1.7.0.0" targetFramework="net45" />
 </packages>