Error in client configuration file

.net, appfabric, c#, caching

Solution

You need to put the configSections element immediately after configuration element.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <!-- Put config sections here -->
  <configSections>
    <!-- Put dataCache client section first -->
    <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere" />
    <!-- Then other sections... -->
  </configSections>

Problem

I am trying to create an AppFabric cache client which is a console application. But receives the error Error in client configuration file while creating new instance of DataCacheFactory. Connection settings are provided in App.Config file as described in msdn. Code ``` static void Main(string[] args) { try { DataCacheFactory dFact = new DataCacheFactory(); DataCache myCache = dFact.GetCache("default"); myCache.Remove("pValue"); myCache.Add("pValue", "Test Cache Value"); Console.WriteLine(string.Format("{0}", "Added to cache. Press any key to read....")); Console.ReadLine(); Console.WriteLine(string.Format("{0}", myCache.Get("pValue").ToString())); Console.ReadLine(); } catch (Exception Ex) { throw new System.Exception(Ex.ToString()); } } ``` } App.Config file ``` <?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> </startup> <configSections> <section name="dataCacheClient" type="Microsoft.ApplicationServer.Caching.DataCacheClientSection, Microsoft.ApplicationServer.Caching.Core,Version=1.0.0.0,Culture=neutral, PublicKeyToken=31bf3856ad364e35" allowLocation="true" allowDefinition="Everywhere" /> </configSections> <dataCacheClient> <hosts> <host name="localhost" cachePort="22233"/> </hosts> </dataCacheClient> </configuration> ``` Exception ``` Microsoft.ApplicationServer.Caching.DataCacheException: ErrorCode<ERRCMC0003>:SubStatus<ES0001>:Error in client configuration file. ---> System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Only one <configSections> element allowed per config file and if present must be the first child of the root <configuration> element. (DistributedInMemory.vshost.exe.Config line 7) at System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal) at System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors) at System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors() at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) --- End of inner exception stack trace --- at System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey) at System.Configuration.ClientConfigurationSystem.PrepareClientConfigSystem(String sectionName) at System.Configuration.ClientConfigurationSystem.System.Configuration.Internal.IInternalConfigSystem.GetSection(String sectionName) at System.Configuration.ConfigurationManager.GetSection(String sectionName) at Microsoft.ApplicationServer.Caching.ClientConfigReader..ctor() at Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.Initialize(String path) --- End of inner exception stack trace --- at Microsoft.ApplicationServer.Caching.ConfigFile.ThrowException(Int32 errorCode, Exception e) at Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration.Initialize(String path) at Microsoft.ApplicationServer.Caching.DataCacheFactory..ctor() at DistributedInMemory.Program.Main(String[] args) in DistributedInMemory\Program.cs:line 16 ``` Any idea why this error happening....Thanks.

Original source