A new documented error+fix on Storefront today.
Did not dive in to all the specifics yet.. Lets start with the Scenario, two Storefront Servers which are loadbalanced with a Netscaler.
There is a DNS entry that resolves the FQND Storefront.fqnd.local to 192.168.2.100 for example, which is a Load balanced VIP for Storefront. This VIP resides on the Netscaler(s). Citrix Receiver / Clients access Storefront by contacting the VIP. Normally for this i use Cookie Insert persistence, but this time we where using Source IP persistence. Also had this error on SSL Session ID Persistence. (not sure yet if this matters)
Note for Source IP Persistence to work correctly on Storefront you will need to Check Client IP and insert X-Forwarded-For in HTTP header. (check this first) A good read on this and how, http://blog.cjharms.info/2013/07/citrix-netscaler-storefront-load.html Note: In Netscaler 10.5 builds with HTML5 interface you’ll find these settings under Traffic Management > Loadbalancing > service/servicegroups > Settings.
This fix will work like the ‘workaround’ for Netscaler Gateway Callback URL. By modifying a HOST file. For that fix see step ‘4’ from this article: http://www.carlstalhood.com/storefront-config-for-netscaler-gateway
Fixing the error:
Add an entry to the Storefront Servers hosts FILE Location=c:\windows\system32\drivers\etc\hosts. Do this on BOTH/ALL storefront servers, specifics follow:
Add an entry set to you Storefront BASE URL. (You can set the base URL in storefront Console) and let the Storefront BASE URL point back to the local IP address of that storefront server in question.
On Storefront server 1 with IP 192.168.1.11 add an entry like: 192.168.2.11 storefront.fqdn.local
On Storefront server 2 with IP 192.168.1.12 add an entry like: 192.168.2.12 storefront.fqdn.local
This will ensure that the storefront server (accessed at a specific time) will allways make a ‘Call Back’ internally/locally so it won’t balance the ‘callback’ over a Storefront Loadbalanced VIP on the Netscaler. (the callback, for some unclear reason might end up on the other storefront server, which in case would cause a mismatch)
Thats it for now,