Uploads to Sharefile Storage Zone fail with 100% completed

I'm currently implementing a ShareFile Proof of Concept with On-Premise Storage (also known as Storage Center) and stumbled upon an Error while trying to upload my first Files into the On-Premise Storage Zone and thought I'd share my Solution.

When trying to upload my first Files into the On-Premise Storage Zone via the Sharefile Website the File Upload itself would continue up to 100% but then fail while completing/finishing with an Error.

In the Logfiles where the Sharefile Storage Center is installed (usually found under: C:\inetpub\wwwroot\Citrix\StorageCenter\SC\logs) I found the following Error Messages:

HE [scerr] StorageCenter Error - Unhandled exception in upload-threaded-3.aspx - 'Unable to generate a temporary class (result=1)
error CS2001: Source file 'C:\Windows\TEMP\vr2z302t.0.cs' could not be found
error CS2008: No inputs specified 

Because the ShareFile Services are running under the Network Service Account (if you haven't changed it) I had to give the Network Service Account Full Access on the C:\Windows\TEMP Folder on the Storage Center Server itself.

Configuring the new Storefront Monitor in NetScaler 10.1

With the new NetScaler 10.1 Release Citrix is shipping an "built-in" Storefront Monitor so you no longer have to use an https-evc Monitor (or something else) as Monitor like I described in my previous Blogpost.

UPDATE: The Problem I describe below seems to be fixed in the new NetScaler Release 10.1 Build 120.13 according to the Release Log.

Issue ID 0398327: Monitoring of StoreFront servers fails if they are part of a cluster and the StoreFront monitor is bound to the entire service group. The StoreFront monitor probe fails because individual members have different host names.

In this Example my Storefront Servers are named storefrontserver01 and storefrontserver02 and they are load balanced under the DNS Record lb-storefront.domain.local which is pointing to the Virtual IP Address (VIP) on my NetScaler responsible for load balancing the two Storefront Servers.

When configuring the new Storefront Monitor don't put the load balanced Storefront DNS Record in the Field "Host Name". Here is the Screenshot how NOT to do it:

You shouldn't use the load balanced DNS Record because as soon as your two (or more) Storefront Servers are down at the same time and therefor your Storefront Virtual Server is marked as Down too, the Storefront Monitor will never report the Storefront Services as up again even though the Storefront Servers might have recovered in the meantime. This is because the Storefront Monitor is checking the DNS Record pointing to the marked as "Down" Virtual Server load balancing your Storefront Servers which in turn is down because the Monitors are "Down" and the Monitors are "Down" because your Virtual Server is "Down"... the NetScaler is caught in a Loop.

To prevent this from happening you should instead create a separate Storefront Monitor for every Storefront Server you are going to be load balancing and put the FQDN of your Storefront Servers in the Field "Host Name". In my example this would be storefrontserver01.domain.local and in the second Monitor it would be storefrontserver02.domain.local.

You should then bind the new Monitors to their corresponding Service as shown in the Screenshot below:

If something is not understandable or my explanations are too weird feel free to let me know in the Comments :) 

Point-and-Print Restrictions and XenApp

I'm running a provisioned XenApp 6.5 Farm and recently updated the HP Universal Print Driver (UPD) on the Print Server to the newest Version because we needed the support for some newer Printer Models.

But after the HP UPD Update the Users weren't able to map HP Printers (with the updated HP UPD) from the Print Server. They would always receive an "Access Denied" Error when trying to map a Printer.

I hadn't updated my provisioned XenApp Image with the new HP Drivers but wanted to to let the Users install the new Drivers until I could update my XenApp Image. But I had disabled the Point and Print Restrictions via GPO and wondered why Users still couldn't install Print Drivers.

While disabling Point and Print Restrictions alone works perfectly on Windows 7 Systems but for Windows Server 2008 R2 disabling Point and Print alone is not enough. You also have to disable the following Security Policy on your XenApp Servers:

And here is the GPO I'm currently using to allow Users to install Print Drivers on my XenApp Servers. Instead of disabling the Point and Print Restrictions completely you can of course also set it to enabled and adjust it accordingly. You can find more information on TechNet.

NetScaler LoadBalancing Monitor for Storefront 1.2

I'm currently in the process of deploying a Storefront 1.2 Infrastructure alongside our already existing Webinterface 5.4 Infrastructure and needed an appropriate LoadBalancing Monitor on NetScaler for the Storefront Servers.

With the latest NetScaler 10.0.x Releases there is unfortunately no "Out of the Box" Storefront Monitor (like there is for the Webinterface), so I used the https-evc Monitor as a Base and the Default.htm Document located in the StoreWeb Folder to query for the String: "JavaScript is required".

If you have choosen another Name for your Store during the Storefront Setup you have to edit the Send String Path accordingly.

Feel free to comment and let me know if this was helpful or if there is an better method/way for monitoring the Storefront Servers.

Update: Citrix is now including a Storefront Monitor with the NetScaler 10.1 Release. I have a new Blogpost on how to correctly configure the new Storefront Monitor in the NetScaler 10.1 Release

Citrix Application Streaming: Adobe Acrobat X

I have been struggeling to successfully stream the Adobe Acrobat 9 via Citrix Application Streaming into Pooled Standard Mode XenDesktop Machines.

The Adobe FlexNET Licensing Service was very uncooperative to say the least, so after countless tries I gave up on streaming Adobe Acrobat 9 and gave the newer Adobe Acrobat X a shot - with success! With Adobe Acrobat X there is no FlexNET Licensing Service anymore and the Licensing is handled somehow internally and not via a special service.

Prerequisites:

Create a Transforms File (.mst) for Adobe Acrobat X:

  • Customize your Adobe Acrobat X Installation via the Adobe Customization Wizard X.
    • Disable Update Functionality
    • Disable Registration and EULA Prompts
    • Disable Acrobat.com Functions
    • ...

Save your Customizations as a Transforms (.mst) file and place it in the folder where the  AcroStan.msi is located. In the following Screenshots you can see the Steps and Customizations I choose to create the .mst file. I choose to name the Transforms file Streaming.mst.

Click "Read more" for the rest of the Blogpost

Create the Adobe Acrobat X Profile Package:

All the following Screenshots are taken from a German Streaming Profiler although all Menu Items should be the same in the English Version of the Streaming Profiler. If you have questions or problems understanding the Screenshots, feel free to leave a comment.

  • Now it's time to fire up your Streaming Profiler on your Profiling Machine and choose a Name for the Profile.
  • Don't select "User Updates" (or whatever it's called in the English Streaming Profiler Version).
  • Select "Advanced Installation" and click "Next".
  •  Now select "Run install program or command line script" and click "Next" again.
  • At the "Choose Installer" dialog, click "Browse" and locate the AcroStan.msi in the Adobe Acrobat X Installation Folder. In the "Command line parameters (optional)" field put TRANSFORMS=Streaming.mst /qn and then click "Next".

Note: If you named and/or placed your .mst file other than Streaming.mst (and next to the AcroStan.msi) you have to adjust the command line parameter accordingly.

  • Click "Run Installer" and wait for the completion of the installation (check the Task Manager for running msiexec.exe processes). After completion click "Next".
  • At the "Select Next Step" dialog, select "Perform additional Installations", and then click "Next".
  • Now select "Edit Registry" and continue with "Next".
  • Click "Start Windows Registry Editor" and the Registry Editor should open up.
  • Now browse to "HKLM\Software\Adobe\Acrobat Distiller\10.0\PrinterName" and change the existing Default Key from "Adobe PDF" to "Microsoft XPS Document Writer". 

Note: You have to choose a Printer Name that exists on your Target Device(s) (every Printer will work - doesn't matter what Driver/Printer it is) where you want to stream the Adobe Acrobat X to. If there is no Printer with the exact same Name (like in the Default Key) on the Target Device the Adobe Acrobat Distiller will fail when trying to convert Microsoft Office Documents into PDF Files. I choose the XPS Document Writer because it is installed on every XenDesktop I wanted to stream the Acrobat X to. You can find more Infos in an offical Citrix Blogpost here.

  • When finished close the Registry Editor and click "Next".
  • At the "Select Next Step" dialog, select "Finish Installations", and then click "Next".
  • At the "Run Application" dialog, do not run any Application and just continue with "Next".
  •  Click "Next" through the remaining dialogs (unless additional settings are required for your environment), and then click "Finish" on the "Build Profile" screen.

Save and publish your finished Profile.