2013-05-02 3 views
3

콘솔 응용 프로그램 인 AppFabric 캐시 클라이언트를 만들려고합니다. 그러나 DataCacheFactory의 새 인스턴스를 만드는 동안 클라이언트 구성 파일에서 오류 오류가 발생합니다.
msdn에 설명 된대로 App.Config 파일에 연결 설정이 제공됩니다.
코드
클라이언트 구성 파일에 오류가 있습니다.

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

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 


모든 I 예외

<?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> 


파일 왜 이런 오류가 발생했는지 .... 감사합니다.

답변

10

구성 요소 바로 다음에 configSections 요소를 넣어야합니다.

<?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> 
+0

감사합니다. @ 닉. – Sunil