Home » Microsoft Technologies

Windows Server App Fabric ErrorCode:SubStatus: Problem

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 anybody 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 
<prelang="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


24 Answers Found


Answer 1

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


Answer 2

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.



Answer 3

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


Answer 4

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

Answer 5

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.



Answer 6

Does this mean i should use something like "servername"  in my web.config file??

Answer 7

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 
  <section name="dataCacheClient"
          Microsoft.ApplicationServer.Caching.Core, Version=,       
          Culture=neutral, PublicKeyToken=31bf3856ad364e35"
		<sectionGroupname="system.web.extensions"type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"><sectionGroupname="scripting"type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"><sectionname="scriptResourceHandler"type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/><sectionGroupname="webServices"type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"><sectionname="jsonSerialization"type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="Everywhere"/><sectionname="profileService"type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/><sectionname="authenticationService"type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/><sectionname="roleService"type="System.Web.Configuration.ScriptingRoleServiceSection, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"requirePermission="false"allowDefinition="MachineToApplication"/></sectionGroup></sectionGroup></sectionGroup></configSections><!-- cache client  --><dataCacheClient><!-- cache host(s) --><hosts><hostname="mis-cache1.pub.geosign.com"cachePort="22233"/><hostname="mis-cache2.pub.geosign.com"cachePort="22233"></host></hosts></dataCacheClient>
      set  compilation debug="true" to insert debugging 
      symbols into the compiled page. Because this 
      affects performance, set this value to true only 
      during development.
    --><compilationdebug="true"><assemblies><addassembly="System.Core, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><addassembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addassembly="System.Data.DataSetExtensions, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><addassembly="System.Xml.Linq, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/><addassembly="Microsoft.ApplicationServer.Caching.Client, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/><addassembly="Microsoft.ApplicationServer.Caching.Core, Version=, 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. 
      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" />
    --><sessionStatemode="Custom"customProvider="AppFabricCacheSessionStoreProvider"><providers><!-- specify the named cache for session  data --><addname="AppFabricCacheSessionStoreProvider"type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider"cacheName="tsavo"sharedId="SharedApp"/></providers></sessionState><pages><controls><addtagPrefix="asp"namespace="System.Web.UI"assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addtagPrefix="asp"namespace="System.Web.UI.WebControls"assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></controls></pages><httpHandlers><removeverb="*"path="*.asmx"/><addverb="*"path="*.asmx"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addverb="*"path="*_AppService.axd"validate="false"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addverb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"validate="false"/></httpHandlers><httpModules><addname="ScriptModule"type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></httpModules>
		<compilers><compilerlanguage="c#;cs;csharp"extension=".cs"warningLevel="4"type="Microsoft.CSharp.CSharpCodeProvider, System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089"><providerOptionname="CompilerVersion"value="v3.5"/><providerOptionname="WarnAsError"value="false"/></compiler><compilerlanguage="vb;vbs;visualbasic;vbscript"extension=".vb"warningLevel="4"type="Microsoft.VisualBasic.VBCodeProvider, System, Version=, Culture=neutral, PublicKeyToken=b77a5c561934e089"><providerOptionname="CompilerVersion"value="v3.5"/><providerOptionname="OptionInfer"value="true"/><providerOptionname="WarnAsError"value="false"/></compiler></compilers>
    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.
		<validationvalidateIntegratedModeConfiguration="false"/><modules><removename="ScriptModule"/><addname="ScriptModule"preCondition="managedHandler"type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></modules><handlers><removename="WebServiceHandlerFactory-Integrated"/><removename="ScriptHandlerFactory"/><removename="ScriptHandlerFactoryAppServices"/><removename="ScriptResource"/><addname="ScriptHandlerFactory"verb="*"path="*.asmx"preCondition="integratedMode"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addname="ScriptHandlerFactoryAppServices"verb="*"path="*_AppService.axd"preCondition="integratedMode"type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/><addname="ScriptResource"preCondition="integratedMode"verb="GET,HEAD"path="ScriptResource.axd"type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/></handlers>



Answer 8

Also this web.config is from my application on my client  , trying to access  the cache  server....

Answer 9

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?




Answer 10

I used the following commands in order



CacheName      [Host]                      
---------      ---------------                  

Then i used the portqry command

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

Querying target system called:


Attempting to resolve name to IP address...


Name resolved to


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








Answer 11

Is it because I am also using the setting below in my configuration file (web.config)

    <!-- specify the named cache  for session  data -->


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


Answer 12


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


Answer 13

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

Answer 14

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




Answer 15

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.



Answer 16

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 subdomains it works perfectly ... cant figure out the reason why ..

so for example, this scenario works

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

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

Please help





Answer 17

Hi Gagan,

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


Adding the following line worked for me




Answer 18

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





Answer 19


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



Answer 20


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.



Answer 21

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.

Answer 22

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.



Answer 23

Thanks .. for solving this thing out Jason..


Well appreciated..


Answer 24

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

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





<< Previous      Next >>

Microsoft   |   Windows   |   Visual Studio   |   Sharepoint   |   Azure