Unable to add load balanced App-V Publishing Server

I’ve finally started playing around with the App-V support in XenDesktop 7.x (I know, behind the times) and immediately hit a pretty significant snag.  In our environment the App-V Publishing Server is load balanced behind and F5 VIP so that we don’t have a single point of failure.  This is the server you define on the second line here:

AppV
When you put a load balanced VIP in that field you end up with this:

“Error Id: XDDS:BA40D906

Exception:
Citrix.Console.Models.Exceptions.ScriptException The App-V Publishing Server is not valid.”

So that’s pretty unfortunate.  I have opened a case with Citrix on the problem, but it holds true for ever 7.x version I have tested (7.1-7.6).  All ports are correct and I can point individually to any server behind the VIP.  Hopefully this gets fixed because I don’t like anything that leads to single points of failure when dealing with environments in the tens of thousands of users 🙂

, ,

11 Comments

  • Phil Waller says:

    Isnt this due to SPN’s not being setup?

    I have publishing servers sitting behind a netscaler and they work fine

    Cheers

  • Marc says:

    Hi Paul,

    You mentioned that you opened a case with Citrix about this. Did you ever get a response from them?

    Cheers

    • Paul says:

      No unfortunately. They agreed it should work but haven’t been able to figure out why it isn’t. Unfortunately my main contact there has now left so I have to raise the issue again with new folks.

      • Brandon Mitchell says:

        My contact from Citrix says it doesn’t work with a load balancer, instead recommends adding each publishing server. you can add the first one via Studio and the remainder via PowerShell (they don’t show in Studio)… I have a slide deck from Citrix that explains this.

        Slide 45

        Add Additional Pub or Mgt Servers

        $appvslot = Get-BrokerConfigurationSlot -Name “AppV”

        $policy = New-CtxAppVServer –PublishingServer “http://pub-svr.domain.com” –ManagementServer “http://mgmt-svr.domain.com”

        New-BrokerMachineConfiguration -ConfigurationSlotUid $appvslot.Uid -Description “added manually” -leafName 2 -Policy $policy ###leafname should be a unique number####

        For setting an additional Pub Server, you first need to have added the AppV servers to the site. (There is no single cmdlet and hence the sequence of 3 steps)

        Slide 46

        Add Additional Pub or Mgt Servers

        $mc = Get-BrokerMachineConfiguration –Name “AppV*” | %{$b = Get-CtxAppVServer –ByteArray $_.Policy;if(($b.managementServer –eq “http://mgmt-svr.domain.com”) –and ($b.PublishingServer –eq “http://pub-svr.domain.com”)){$_}}

        $dg = Get-BrokerDesktopGroup -Uid $DesktopGroupID or $dg = Get-BrokerDesktopGroup -Name $DesktopGroupName

        $mc | Add-BrokerMachineConfiguration -DesktopGroup $dg

        Now to add AppV Servers to a DG, this is done automatically when the first application from the management server is published. This is done so that App-V servers that do not have App-V applications published for the DG do not get that particular blob and the App-V client does not configure this “unnecessary” App-V Server. However you can add it forcefully even without publishing an application by following cmdlets.

        Slide 47

        Add App-V Servers – visible in Studio

        NOTE: Only one pair of Appv servers appear in Studio UI

        $appvslot = Get-BrokerConfigurationSlot -Name “AppV”
        $policy = New-CtxAppVServer –PublishingServer “http://pub-svr.domain.com” –ManagementServer “http://mgmt-svr.domain.com”
        New-BrokerMachineConfiguration -ConfigurationSlotUid $appvslot.Uid -Description “Created by Studio” -leafName 2 -Policy $policy
        ###leafname should be a unique number####

        The Description tag in New-brokermachineconfiguration needs to be ‘created by studio’ if an administrator wants the Appv server being added to the site appear on the Desktop Studio UI.

        Slide 48

        Citrix Policy commandlets

        http://support.citrix.com/proddocs/topic/citrix-appv-admin-v1-xd7/citrix-appv-admin-v1-wrapper-xd7.html

        Get App-V Config
        Get-BrokerMachineConfiguration –Name “AppV*” | %{Get-CtxAppVServer –ByteArray $_.Policy}

        Get App-V Config for Specific Delivery Groups
        Get-BrokerMachineConfiguration | %{foreach($a in $_.DesktopGroupUids){if($a –eq $dguid){Get-CtxAppVServer –ByteArray $_.Policy}}}

        • Paul says:

          That’s awesome info Brandon thanks! I wish they had passed me that slide deck.

        • Marc says:

          Thanks for this Brandon. I have added the secondary app-v server using the powershell commands, but now all of the App-V applications show up twice in studio (once from each app-v server). Did you find a way around this to offer fully automated HA?

  • Brandon Mitchell says:

    The way it was explained to me is when publishing an AppV app that it will query all configured publishing servers (that’s why you see an instance of each AppV for each publishing server) however at application launch time it will use the first one configured and failover to the next one if the first one is unavailable, etc.

    Use Get-BrokerMachineConfiguration to verify your configured AppV publishing servers, you should see AppV\1, AppV\2, etc.

    Then Get-BrokerDesktopGroup to verify MachineConfigurationNames and MachineConfigurationUids lists the output from the Get-BrokerMachineConfiguration.

  • dg says:

    If you wish to load balance the publishing service, and you wish to stream app-v applications from an http(s) source as opposed to a UNC path, then you can try using this
    http://www.chawn.com/XDAppVSync.htm

    Just to be clear – when creating your XD App-V Policy, specifying the ‘publishing server’ is no different to using MS Group Policy or adding a publishing server using App-V cmdlets

    Citrix Studio will only query the management server via WSMAN which will then pass the source path to the app-v package. The publishing server is not used. Run ‘netstat -ano’ while using Citrix studio and you will only see WSMAN ports (5985) open. No connections to the publishing or management service.

    As you have found out, if the source path is not a valid UNC path, studio cannot access the app-v package to retrieve icons and various other params – this of course prevents creating published applications when using a load balanced URL for the App-V publishing service.

    I wouldn’t worry too much about load balancing the Management service – you’re unlikely to perform admin during a DR scenario – however LB of the publishing service is critical in my view and can also enable caching of App-V packages at the load balancer

    http://www.chawn.com/XDAppVSync.htm works around these issues – however ongoing maintenance of published applications that use the ctxappvlauncher.exe is compromised. Therefore an alternative App-V launcher is provided to resolve most of the issues

    This only applies to hosted/published apps – for Published desktops the only citrix integration piece is the specification of the publishing server

    Hope this helps

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">