Freelance IT Architect @ Sallandius

So, its time for something new. At the first of may 2016, i’am starting as a freelancer. I’m available as IT Architect / Technical Architect, with strong focus on Citrix, Microsoft, VMWare, AirWatch. Overall knowledge of networking & storage. Also available for Consultant/Engineer roles.


Citrix Storefront 2.x – Failed to run discovery – Unable to connect to the remote server Url: http://storefront.fqdn/Citrix/Store/discovery


A new documented error+fix on Storefront today.

General info

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 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, 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:

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 add an entry like: storefront.fqdn.local


On Storefront server 2 with IP add an entry like: 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,