none
Windows Server App Fabric ErrorCode<ERRCA0017>:SubStatus<ES0006>: Problem

    Question

  • Hi Guys

    I am using AppFabric's cache feature to set my cache .. I have two cache servers and i am connecting to those cache servers through my client. Also I will be persisting my session state. I am using XML as my Provider. I have also made sure that this is a shared folder and everybody can access it across the network.

    The problem arises when i try to connect to the xml Provider. I keep gettign this message

    ErrorCode<ERRCA0017>:SubStatus<ES0006>:There is a temporary failure. Please retry later. (One or more specified Cache servers are unavailable, which could be caused by busy network or servers. Ensure that security permission has been granted for this client account on the cluster and that the AppFabric Caching Service is allowed through the firewall on all cache hosts. Retry later.)
    
    
    
    
    
    
    I have also set 
    
    
    <pre lang="x-powershell">Set-CacheClusterSecurity -SecurityMode None -ProtectionLevel None 
    
    

    as was discussed in some other board. I can use somethig like

    Use-CacheCluster -Provider XML -ConnectionString "UNC PAth here "

    but not like

    Use-CacheCluster -Provider XML -ConnectionString "sameserverasUNcAbove.com"

     

    is there something that I am missing .. please let me know .. thanks

    • Edited by GJ1811 Thursday, October 07, 2010 1:36 PM
    Wednesday, October 06, 2010 8:54 PM

Answers

  • In that case, I think you're running into a known problem. Could you try adding an entry to the Hosts file here: c:\windows\system32\drivers\etc\hosts. You can then map the server name to the IP address. This is a work around. We're working on addressing the real problem.

    Jason

    Monday, November 01, 2010 4:27 PM

All replies

  • I hope by saying 'when i try to connect to the xml Provider' you meant connecting from client to server (with xml provider).

    You'll also need to turn off the security on client side http://msdn.microsoft.com/en-us/library/ff718179.aspx

    Thursday, October 07, 2010 3:29 AM
  • Rahul makes a good point. What action are you taking exactly when you get that error? Is it the use-cachecluster command from powershell or is it an application attempting to programmatically use the cache cluster?

    Also, turning off security is OK for testing, but you'll want to evaluate whether this is acceptable for production use where the security might be a requirement.

    Jason

    Thursday, October 07, 2010 11:06 AM
  • I am running the same command Set-CacheClusterSecurity -SecurityMode None -ProtectionLevel None
    on my client as well and this is what i get,

    WARNING: Configuration will not be updated. No new values were provided.

     

    Update :: I have used Windows Powershell as well as my sample app to connect to the cache host,but everytimg i get the freakin error.When i try this

    \\ServerName\Cache it can successfuly connect to the clusterconfig.xml but when i try using this appfabric.com (appfabric.com points to \\ServerName\Cache) i cannot connect to the share. I found that i cannot use \\ServerName\Cache  as my cache host in my web config 'cause then it gives out an invalid URI error ....

    Was that too confusing .. ?? sorry abt that .. please

    Thursday, October 07, 2010 1:21 PM
  • I hope by saying 'when i try to connect to the xml Provider' you meant connecting from client to server (with xml provider).

    You'll also need to turn off the security on client side http://msdn.microsoft.com/en-us/library/ff718179.aspx


    That is exatly what i meant... sorry for being wayward !!!
    Thursday, October 07, 2010 1:23 PM
  • Hey. You say that you're using \\ServerName\Cache in the web.config file for your cache host. But it sounds like this is the location of your XML configuration store for the cluster, right? If that is the case, then this could be a problem. The cache host shold be a name of one of the machines in your cluster rather than the file share. It uses the machine names to connect to the Caching Service running on that machine. Let me know if this is the issue.

    Jason

    Thursday, October 07, 2010 1:37 PM
  • Does this mean i should use something like "servername"  in my web.config file??
    Thanks and Regards Gagan
    Thursday, October 07, 2010 1:51 PM
  • Also , i did use the servername as my cache host but its still giving me this error . here is the entire web.config file

    <?xml version="1.0"?>
    <!-- 
      Note: As an alternative to hand editing this file you can use the 
      web admin tool to configure settings for your application. Use
      the Website->Asp.Net Configuration option in Visual Studio.
      A full list of settings and comments can be found in 
      machine.config.comments usually located in 
      \Windows\Microsoft.Net\Framework\v2.x\Config 
    -->
    <configuration>
    	<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"/>
      
    		<sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    			<sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    				<section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    				<sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    					<section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="Everywhere"/>
    					<section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    					<section name="roleService" type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" allowDefinition="MachineToApplication"/>
    
    				</sectionGroup>
    			</sectionGroup>
    		</sectionGroup>
    	</configSections>
    
     <!-- cache client -->
     <dataCacheClient>
      <!-- cache host(s) -->
      <hosts>
       <host     
        name="mis-cache1.pub.geosign.com"     
        cachePort="22233"/>
       <host name ="mis-cache2.pub.geosign.com" cachePort="22233"></host>
      </hosts>
     </dataCacheClient>
     
    	<system.web>
    		<!-- 
          Set compilation debug="true" to insert debugging 
          symbols into the compiled page. Because this 
          affects performance, set this value to true only 
          during development.
        -->
      
    		<compilation debug="true">
    			<assemblies>
    				<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
    				<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="Microsoft.ApplicationServer.Caching.Client, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        <add assembly="Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
       </assemblies>
    		</compilation>
    
    
      
    		<!--
          The <authentication> section enables configuration 
          of the security authentication mode used by 
          ASP.NET to identify an incoming user. 
        -->
    		<authentication mode="Windows"/>
    		<!--
          The <customErrors> section enables configuration 
          of what to do if/when an unhandled error occurs 
          during the execution of a request. Specifically, 
          it enables developers to configure html error pages 
          to be displayed in place of a error stack trace.
    
        <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
          <error statusCode="403" redirect="NoAccess.htm" />
          <error statusCode="404" redirect="FileNotFound.htm" />
        </customErrors>
        -->
      <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
       <providers>
        <!-- specify the named cache for session data -->
        <add
         name="AppFabricCacheSessionStoreProvider"
         type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
         cacheName="tsavo"
         sharedId="SharedApp"/>
       </providers>
      </sessionState>
      
    		<pages>
    			<controls>
    				<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    				<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			</controls>
    		</pages>
    		<httpHandlers>
    			<remove verb="*" path="*.asmx"/>
    			<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false"/>
    		</httpHandlers>
    		<httpModules>
    			<add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</httpModules>
    	</system.web>
    	<system.codedom>
    		<compilers>
    			<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    				<providerOption name="CompilerVersion" value="v3.5"/>
    				<providerOption name="WarnAsError" value="false"/>
    			</compiler>
    			<compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    				<providerOption name="CompilerVersion" value="v3.5"/>
    				<providerOption name="OptionInfer" value="true"/>
    				<providerOption name="WarnAsError" value="false"/>
    			</compiler>
    		</compilers>
    	</system.codedom>
    	<!-- 
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0. It is not necessary for previous version of IIS.
      -->
    	<system.webServer>
    		<validation validateIntegratedModeConfiguration="false"/>
    		<modules>
    			<remove name="ScriptModule"/>
    			<add name="ScriptModule" preCondition="managedHandler" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</modules>
    		<handlers>
    			<remove name="WebServiceHandlerFactory-Integrated"/>
    			<remove name="ScriptHandlerFactory"/>
    			<remove name="ScriptHandlerFactoryAppServices"/>
    			<remove name="ScriptResource"/>
    			<add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    			<add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    		</handlers>
    	</system.webServer>
    	<runtime>
    		<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1" appliesTo="v2.0.50727"><dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    			<dependentAssembly>
    				<assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
    				<bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
    			</dependentAssembly>
    		</assemblyBinding></runtime>
    
    
    </configuration>
    
    

     


    Thanks and Regards Gagan
    Thursday, October 07, 2010 1:55 PM
  • Also this web.config is from my application on my client , trying to access the cache server....
    Thanks and Regards - Gagan
    Thursday, October 07, 2010 1:58 PM
  • First, yes, you should use the server name of the cache host for the host name. It looks like you've done that though, and I assume you're still seeing the problem.

    I'm sorry if you've already done this, but could you please try to ping the mis-cache1.pub.geosign.com server from the web server that is running this site? You have to be able to get to the cache hosts first.

    Next, make sure the port is open from the web server. You can do this by using a tool like PortQry. Make sure you can access the port 22233. For more information about PortQry and a download location, see http://support.microsoft.com/default.aspx?scid=kb;en-us;310099.

    Let's start with these two suggestions. BTW, are you seeing the exception in the browser when you try to add an object to session state? Or does it happen immediately when you go to your site?

    Thanks.

    Jason

    Thursday, October 07, 2010 4:47 PM
  • I used the following commands in order (through powershell)

    Use-CacheCluster -Provider XML -ConnectionString \\mis-cache1.pub.geosign.com\Cache

    Get-Cache

    CacheName  [Host]      
       Regions      
    ---------  ---------------     
    default        
    tsavo         
    
    
    

    Then i used the portqry command

    Portqry -n mis-cache1.pub.geosign.com -p tcp -e 22233

    Querying target system called:
    
    mis-cache1.pub.geosign.com
    
    Attempting to resolve name to IP address...
    
     
    
    Name resolved to 10.61.0.19
    
    querying...
    
    TCP port 22233 (unknown service): LISTENING
    
    

     

    I can even ping successfuly to the my cache server

    I see this error , as soon as i visit my site through the browser...

     

     

     

     

     

     


    Thanks and Regards - Gagan
    Thursday, October 07, 2010 5:29 PM
  • Is it because I am also using the setting below in my configuration file (web.config)

      <sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
       <providers>
        <!-- specify the named cache for session data -->
        <add
         name="AppFabricCacheSessionStoreProvider"
         type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"
         cacheName="tsavo"
         sharedId="SharedApp"/>
       </providers>
      </sessionState>

     

    If i remove the above block, i dont get the error.


    Thanks and Regards - Gagan
    Friday, October 08, 2010 1:57 PM
  • Gagan,

    This section is required to use caching for your ASP.NET session state. Are you storing objects in session for your ASP.NET application? And were you wanting to use caching for that? If so, you need this section.

    If you're using the APIs directly and do not care about session state, then you can remove this section. If the error goes away and the rest of your caching functionality works, then I suppose your fixed. Although it should also have worked with this section, assuming that you had a cache named tsavo in your cluster.

    Jason Roth

    Tuesday, October 12, 2010 12:25 PM
  • Thanks Jason ... for your help

    I will be using ASP.NET session state , so this section is important for me ... I managed to solve some of the issues but right now i am getting this error.

    ErrorCode<ERRCA0017>:SubStatus<ES0001>:There is a temporary failure. Please retry later.

    Like i said (in one of the other threads) that there is no throttling on the servers. The cache Name exists on the cache servrs. the interesting thing is , the whole setup works , if i make my local mahine, my cache server. As soon as i try to connect to the server,i start getting the message. Absolutely, no problem with Firewall and AVs .... I checked that twice.. the firewall is disabled on the cache servers and for me on my machine , there is no rule that is blocking the client from making a connection to the server.
    i checked this with the security disabled on both the client and the server.


    Thanks and Regards - Gagan
    Tuesday, October 12, 2010 1:24 PM
  • One interesting thing came up...

    I am connecting to the cache servre which is Windows Standard 2008 SP2 from my client which is Windows 7. As mentioned in the system requirements, I had to install AppFabric version 6.0 on the server while on the client i had to install AppFabric 6.1

    Is that the reason why, I am getting temp failure errors...

     

     


    Thanks and Regards - Gagan
    Tuesday, October 12, 2010 1:57 PM
  • I don't think so, but I'll setup an R2 machine today to test.

    In the meantime, can you try something to keep eliminating possibilities? Create a C# console application that is not a web application. Then just call the APIs directly to access your cache host. See if you get the same error from the remote machine. You can see an example here: http://msdn.microsoft.com/en-us/library/ee790839.aspx. Then just all the Add or Put and Get methods on the DataCache.

    Sorry for all of the problems you're having. This should be working.

    Jason

    Wednesday, October 13, 2010 10:28 AM
  • Hi Jason ,

    If you could please let me know about the following, that would be awesome and sweet..

    My client's address is like this  client.A.domain.com

    my server's address is like this server.B.domain.com

     

    I cant persist my session state in the above case . However when they are in the same subdomains it works perfectly ... cant figure out the reason why ..

    so for example, this scenario will work

    client's address is like this  client.A.domain.com

    server's address is like this server.A.domain.com

    Please help

     

     

     


    Thanks and Regards - Gagan
    Wednesday, October 13, 2010 3:45 PM
  • Hi Gagan,

    I had the same issue and found the solution in that thread

    http://stackoverflow.com/questions/3350976/appfabric-error-when-disable-security-for-sessionstate-provider

    Adding the following line worked for me

    <dataCacheClient>
       
    <hosts>
            ...
       
    </hosts>

       
    <securityProperties mode="None" protectionLevel="None" />
    </dataCacheClient>

    Saturday, October 16, 2010 12:44 PM
  • Thanks martin... for your reply.. i happened to manage that problem. but right now I am struck with the problem that the client fails to connect to the cache server if they are on different subdomains within the same domain...

     

     

    thanks


    Thanks and Regards - Gagan
    Saturday, October 16, 2010 3:01 PM
  • Gagan,

    I'm checking with the others that might know the answer to your domain question. Thanks for your patience.

    Jason

    Monday, October 18, 2010 1:44 PM
  • Gagan,

    We have seen issues where the servers and clients are on separate domains. In this case there are some work arounds, but I'm not sure if you're seeing the same issue. Can you confirm something if possible? Are the clients able to ping the cache server by server name? Or do you have to use the FQDN (SERVERNAME.DOMAINNAME). If you have to use the FQDN, then there may be a few things we can try.

    Jason

    Friday, October 29, 2010 2:37 PM
  • I have to use the FQDN to ping the server successfuly.. using the servername only gives me a mesasge that the host was not found as expected.
    Thanks and Regards - Gagan
    Friday, October 29, 2010 2:40 PM
  • In that case, I think you're running into a known problem. Could you try adding an entry to the Hosts file here: c:\windows\system32\drivers\etc\hosts. You can then map the server name to the IP address. This is a work around. We're working on addressing the real problem.

    Jason

    Monday, November 01, 2010 4:27 PM
  • Thanks .. for solving this thing out Jason..

     

    Well appreciated..


    Thanks and Regards - Gagan
    Monday, November 01, 2010 4:29 PM
  • I am getting the below exception when trying to access the appfabric caching service.

    A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 65.52.39.111:443

    Can you please let me know what is the Host entry for this?

     

    Thanks

    Tuesday, November 02, 2010 5:00 AM
  • @Jason: You are a life savor!

    -Thanks

    Monday, June 13, 2011 7:34 PM