Daniele Tosatto

Application delivery and virtualization news

Browsing Posts in Application Virtualization

It’s easy to run a local installed application isolated. WhyI should run applications isolated and last but not leased what is the impact of running a local application isolated?
Let’s start with an application Citrix is using that way: Internet Explorer. When Application Streaming is used to run an Internet Explorer Add-on, it does exactly what I want to do: Running a local installed Internet Explorer isolated to make the add-on available for the user.
So the question is now, are there other applications where you want to run an add-on isolated/streamed. Yes there are! The first time I run into that question, was the day I isolated 7-Zip. It is an easy task to profile 7-Zip, but because Explorer is not “aware” of the streamed “zip utility” the explorer context menu does not contain the 7-Zip Add-on.

But if you run Explorer isolated the context menu contains the 7-Zip extensions. Now there is the question. How can I run Explorer inside an isolation environment of a streamed application?
Simply by “calling” Explorer or any other installed executable from inside the isolation. There are many ways to do so: I like to do everything possible inside the Citrix Profiler, so I created a run_Explorer.cmd file, but you can also define a start script starting explorer (with option /e,). The cmd script I added to the target and also defined it as an application shortcut.
Now 7-Zip is shown in the context menu of Explorer.

As a side effect now the 7-Zip installation files are “visible” to Explorer. If you need details on how to do it step by step look here: Blog from Joseph Nord: AIE on Desktop and AIE via App Streaming

Now it looks like everything is done. Isn’t it? No it is not. Running Explorer locally has a lot more impact: When using Explorer you change settings, you create files, copy files and all this tasks are running isolated, controlled by the Isolation rules.
So the last thing you have to do is consider in which way the isolation rules impacts the application behavior and how to change them.

When you use the Refresh Server option to refresh a Publishing Server from the Microsoft Application Virtualization (App-V) Client MMC snap-in, you may receive the following error message:

The Application Virtualization Client could not update publishing information from the serverServerName.
No connection could be made because the target machine actively refused it.
Error code: xxxxxxx-xxxxxx2A-0000274D

This issue can occur if the App-V client cannot communicate with the Publishing Server.

For all the latest information including how to troubleshoot and resolve this issue see the following Knowledge Base article:

KB2266481 – Using the Refresh Server option to refresh a Publishing Server from the Microsoft Application Virtualization Client MMC snap-in results in error code 2A-0000274D

hen you use the Refresh Server option to refresh a Publishing Server from the Microsoft Application Virtualization (App-V) Client MMC snap-in, you may receive the following error message:

The Application Virtualization Client could not update publishing information from the server server name.
The server could not authorize you to access the requested data. Please report the following error code to your System Administrator.
Error Code: xxxxxxx-xxxxxx04-00000917

This issue can occur if the user is not a member of a user group that is specified under Group Assignment in the Provider Policy on the App-V Management Server.

To resolve this issue, verify that you are a member of a user group that is associated with the provider policy. To do this, follow these steps:

1. On the App-V Management Server, click Start, Administrative Tools, and then click Application Virtualization Management Console.
2. In the navigation pane, expand the server name object, and then click Provider Policies.
3. In the details pane, double-click the required policy. For example, double-click Default Provider.
4. Click the Group Assignment tab.
5. Verify that you are a member of one of the user groups that is listed or add a user group that’s missing.

For the latest version of this information please see the following Knowledge Base article:

KB2266600 – Using the Refresh Server option to refresh a Publishing Server from the Microsoft Application Virtualization Client MMC snap-in results in error code 04-00000917

An application on a Microsoft Application Virtualization (App-V) client may fail to launch with the following error:

The Application Virtualization Client could not launch application name.
The specified Application Virtualization Server could not be accessed.
Try again in a few minutes. If the problem persists, report the following error code to your System Administrator.

Error Code: xxxxxxx-xxxxxx0A-10000002

This issue can occur if the App-V server name specified in the HREF attribute in the application .osd file is using the %SFT_SOFTGRIDSERVER% environment variable but the environment variable is not configured on the App-V client.

For the most current information including the resolution, please see the following Knowledge Base article:

KB2271342 – An application on an App-V client fails to launch with Error Code: 0A-10000002

Steve Bucci, Microsoft Support Escalation Engineer , recently posted another great video he put together that shows you how to troubleshoot and correct some common configuration mistakes by guiding you through the areas to double-check in a typical App-V deployment.  Whether you’re new to Microsoft Application Virtualization or a seasoned veteran, you’ll definitely want to spend the 10 minutes to check out this short video:

Get Microsoft Silverlight

For more information on troubleshooting some common App-V issues see this post by Microsoft App-V Support Escalation Engineer Steve Thomas.

Microsoft has published a new App-V Knowledge Base article.  This one talks about an issue where you may get Error 80070643 when trying to install App-V 4.5 SP2 via Microsoft Update:

=====

Symptoms

You receive an “Error 80070643″ error message when you try to install Microsoft Application Virtualization (App-V) 4.5 SP2 on the Microsoft Application Virtualization Client via Microsoft Update.

Resolution

Install Microsoft Application Error Reporting before installing the Microsoft Application Virtualization 4.5 SP2 update.
When installing Microsoft Application Error Reporting, you must use the APPGUID parameter to specify the App-V product code. The product code is unique for each App-V client type and version. Select the correct product code of the existing App-V release from the following table.

image

Note: If you need to find the product code, you can use the Orca.exe database editor or a similar tool to examine Windows Installer files to find the value of the ProductCode property. For more information about using Orca.exe, see Windows Installer Development Tools (http://go.microsoft.com/fwlink/?LinkId=150008).

1.     Locate the Microsoft Application Error Reporting install program, dw20shared.msi, which can be found in the Support\Watson folder on the release media.

2.     To install the software, run the following command:

msiexec /i dw20shared.msi APPGUID={valuefromtable} REBOOT=Suppress REINSTALL=ALL REINSTALLMODE=vomus

If you try installing the App-V server and get error 25100 or 25109 then take a look at this one:

Symptoms

When you attempt to install the Application Virtualization 4.5 Management Server either through a typical installation option or a custom option that includes the Application Virtualization Management Web Service on Windows Server 2008 or Windows Server 2008 R2, you may encounter the following error:
Error 25100. An internal error occurred.
or
Error 25122. The installation program was unable to register the ASP.NET web service extension.

Cause

This issue happens when trying to install the Application Virtualization Management Service version 4.5 on a Windows Server 2008 or Windows Server 2008 R2 server that has either the .NET 4.0 client profile or full installation of the .NET 4.0 framework. This issue occurs because the installer attempts to use the .NET 4.0 Framework path for registering the ASP.NET web extensions.
You will also see the following in the Softgrid-server-setup.log file:
[2010-04-22 16:29:57] (1408:3660) Running command “”C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe” -ir -enable“.
[2010-04-22 16:29:57] (1408:3660) ::CreateProcess error 0×2.

For the latest version of this article and details on the resolution see KB2212140.

From an App-V point of view, App-V with HTTP deployment method is not too complicated, but there are some aspects that have the potential to cause confusion in the community and with this Microsoft hope to avoid the confusion and hopefully, one can test, play and deploy this method with confidence.

In this article, we will discuss the following:

The configuration of IIS

- The installation of IIS

- The creation of the virtual directory

- The MIME types

The creation and configuration of the Publishing Document

- How HTTP streaming works with App-V and how we use and create the Publishing Document

- Testing the Publishing Document

The configuration of the App-V Client

- The configuration of the HTTP server

- The configuration of the App-V client settings

- More information

For the creation of this document, a Windows Server 2008 R2 machine has been used with Internet Information Services 7.5 and a Windows 7 client with App-V for Windows Desktops 4.6 x64.

The configuration of IIS

The configuration of the IIS server is not that complicated for use with App-V; however, there are some things we should keep in mind.

The installation of IIS

When installing IIS for App-V, we should make sure the following role components are installed:

· Common HTTP Features – ALL except HTTP redirection

· Application Development – ALL

· Health and Diagnostics – HTTP logging and Request Monitor only

· Application Development – ALL

· IIS 6 Management Compatibility – ALL

· Security – ALL authentication options

· Management Tools – ALL

The creation of the virtual directory

A virtual directory in IIS must be created in order to represent the App-V content share that contains all application packages. The virtual directory has to be pointed to the location where the content share is. The content share should be configured as a default file share. For the virtual directory, the default settings can be maintained, but make sure that the virtual directory is located under the default website and that Directory Browsing and Read are checked.

The MIME types

In IIS, we have to configure a couple of MIME types to make sure we can handle the App-V files properly. Below is a summary of these MIME types:

image

The creation and configuration of the Publishing Document

Whether HTTP Publishing and Streaming works or fails depends mostly on the Publishing Document. The Publishing Document is an .aspx page to which the App-V client connects to send its request for applications (icons, FTA’s etc.). If the Publishing Document is not functioning properly for any reason, the clients will not be able to connect and the App-V applications will not work. There are several methods to create a proper Publishing Document, some of them are easy and some complicated and some of them are suited for quick tests and some not.

We can create a Publishing Document manually, which is a good one for testing purposes. However, when we are looking for a larger deployment, we would not be happy to process each application package manually. This would also be prone to errors and it would require manual modification when a new package is deployed to the environment. Because this is not desired, we can also use more complicated ways to achieve our goal, making our lives much easier in the end by creating your Publishing Document automatically.

How HTTP streaming works with App-V and how we use and create the Publishing Document

When we deploy App-V with Management or Streaming servers, the App-V clients are configured to point to the App-V server, which handles their request. When we only use IIS for the publishing and streaming of App-V applications, we need to have a slightly different approach.

From a client perspective, we do not have to do much, except configuring it to point to a HTTP server and configure some settings. However, from the IIS point of view, we should understand some things before we can implement this properly.

When the App-V client performs a Desktop Configuration Refresh (DC Refresh), it sends a request to the IIS server. With this request, the client is asking what applications are available, and where icons should be placed and whether this application has File Type Associations (FTA’s). The client needs to receive this information in XML format.

Therefore, in order for the client to get all information properly, we have to make sure that this information is accurately available on the IIS server. In order to achieve this, we have to make a Publishing Document. This Publishing Document is an .aspx file that is located in the root of the content directory. The client needs to be pointed to this page in order to work, but this will be discussed later on. This Publishing Document needs to contain information about the Desktop Configuration, which includes (but is not limited to) the Refresh Settings, the Refresh Interval, Reporting Settings and of course, the Applist.

A basic Publishing Document looks like this:

image

The POLICY part of the document will specify how (and if) the Desktop should be configured, whether we want a refresh on login to occur or not and on what interval and whether we want to enable reporting.

The part between the APPLIST tags is interesting. This is the part where the XML should be placed that specifies the applications, their icons and FTA’s etc. Back in the old days, there was no ‘easy’ way to create this piece of information. We had to perform a DC refresh on a client with Verbose Logging enabled, because that way the complete APPLIST was parsed to the client in the App-V Client Log. We could then reuse this piece to create the Applist in the Publishing Document.

Nowadays, this is much easier. When we create an App-V package, the Sequencer creates an XML manifest file for each application, and this manifest file contains all publishing information. An example of a manifest file looks like this:

image

As we can see here, we have a ready-to-go APPLIST section. This part can be used to automatically create the APPLIST, making our lives very easy.

We can configure the Publishing Document to call another piece of code that parses all manifest files of all applications on the Content Share so that a proper Publishing Document is created. For this to work, we need to modify the original Publishing Document a bit:

image

As you can see, we have added a section at the top of the page. This piece is referring to a class file called publishing.aspx.cs and this code is responsible for parsing the XML manifest files that exist on the content share. This code also makes sure that the parsed info will be placed in the Publishing Document between the APPLIST tags. So simply said, the Publishing Document calls a CodeFile class file, and this class file is responsible for the creation and placement of the APPLIST. Below is an example of the Class file. Please note that there are various options for this file, and that it is not limited to the example below. In this example, we use a C# method that uses an algorithm to check for XML manifests files and to process the info to the APPLIST.

image

Testing the Publishing Document

When we have created the Publishing Document, we can test it to see if it works. Of course, when your App-V Client refreshes, publishes and launches applications correctly, it seems to be working just fine but if this does not work, we need to troubleshoot this. When we move to the IIS server and browse to the publishing.aspx page from Internet Explorer, we should see an error, and it should also be telling us where this error is located. An example is a failing DC Refresh, resulting in the error below (0A-400001F4). This error basically means that the IIS Server returns an Internal Error 500.

image

When we now browse to the publishing page from the Internet Explorer, we get a more detailed error:

image

This would be the best way to troubleshoot these kinds of issues. Even a verbose App-V client log will not show detailed info on the problem in the Publishing Document.

When the DC refresh is happening properly, but applications that are not published or launched, we have an issue in another part of the configuration (probably the client configuration).

The configuration of the App-V Client

As mentioned earlier, the configuration of the server on the client is not that difficult. However, there are some settings we should keep in mind in order to have a succesfull deployment.

The configuration of the HTTP server

In the server section of the App-V Client Management Console, we need to specify a name for the server, which can be anything you like. The hostname should represent the machine name that runs the IIS server. When selecting a Standard HTTP Server as the server type, the port will be automatically changed to port 80. The path to the Publishing Document should be in the format /content/Publishing.aspx if the aspx page is in the content directory.

The configuration of the App-V client settings

In the App-V Client registry, we should configure the SourceRoot for the Applications, Icons and OSD’s.

This can be configured here: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SoftGrid\4.5\Client\Configuration:

image

This would make the deployment of applications much easier. Setting these SourceRoots makes sure that the Client always looks in the right directions for the necessary files. When configured the SourceRoot overwrites the part before the subfolder in the HREF section of the OSD file. For example, when the OSD is set to RTSP://server:554/appsubfolder/app.sft and the ASR is set to \\branchserver\content, the RTSP://server:554 part will be overwritten by \\branchserver\content.

In order to make this work, we have to make sure that the subfolders are properly configured in the applications XML manifest (which can be done on the Sequencer). When we look at the below snippet of a manifest file, we see that it points to %SFT_MIME_SOURCE%/DeepZoomComposer.osd for the OSD.

image

Usually, the application files are located in a subfolder on the content share. If this would be the case, and if the package would be located in \\appvcontent\deep zoom composer, and we would set the ASR to http://IISSERVERNAME:80/contentname, this would fail because the client will look in http://IISSERVERNAME:80/contentname/DeepZoomComposer.osd. So on the sequencer, we should make sure the Package Folders are set right so that we do not have to modify the XML manifests afterwards.

When we have issues with the locations, we can see this in a verbose client log very well. We would see entries like the ones below that tell us the wrong location where the client looks for the files.

Could not load OSD file http://servername:80/content/application.osd

The app manager could not create an application from ‘http://servername:80/content/application.osd’ (rc 24603C4A-40000194)

More information

HTTP Publishing in App-V (Part 1): http://blogs.msdn.com/b/johnsheehan/archive/2009/03/24/http-publishing-in-app-v-part-1.aspx#comments

Support for Client Reporting over HTTP: http://technet.microsoft.com/en-us/library/ee956912.aspx

How to Configure the IIS Server: http://technet.microsoft.com/en-us/library/cc843650.aspx

.NET Framework General Reference – @ Page:

http://msdn.microsoft.com/en-us/library/ydy4x04a(vs.71).aspx

http://msdn.microsoft.com/en-us/library/ydy4x04a(VS.85).aspx

During the sequencing process of Microsoft Office 2010 on Windows Vista Service Pack 1 (SP1) or Service Pack 2 (SP2) using the Microsoft App-V 4.6 sequencer you may get the following error:

The application has failed to start because its side-by-side configuration is incorrect

image

You may also receive an error similar to the following when launching PowerPoint:

The application failed to initialize properly (0xc0150002). Click OK to terminate the application.

clip_image002

This can occur because of an issue between the VC++ Redistributables used in Windows Vista and the way the App-V 4.6 Sequencer handles them.  Also note that this issue only occurs with Windows Vista.  If you’re using Windows 7 then you shouldn’t run into this issue.

Unfortunately deleting files and replacing them really doesn’t work but the resolution is actually very simple. To avoid this issue, during sequencing only launch Word and Excel, then configure the Windows Update settings and toolbars as wanted. Don’t launch PowerPoint and Access at this point.  Once the sequence is complete you can stream down the package to Windows Vista machines and they should launch with no problems.

Here are some links for Office 2010 Guides and Deployment kits:

Prescriptive guidance for sequencing Office 2010 in Microsoft App-V

Microsoft Office 2010 Deployment Kit for App-V

If you are running Microsoft App-V in what is now referred to as a traditional App-V Server-based infrastructure, desktop configuration is controlled by an App-V Management Server. Depending on local client configuration and provider policy, the client will periodically refresh its configuration against the server. This was once called DC Refresh and is now referred to as Publishing Refresh. During Publishing Refresh, the App-V client receives the list of applications to be published (APPLIST.XML) and from this will cache the icons and the OSD files by retrieving them from the locations specified in the APPLIST.XML that is received from the server. The locations of the OSD and Icons can come directly from the locations specified in the APPLIST.XML data or they can come from the use of OSDSourceRoot and IconSourceRoot registry values which allow a client computer to receive its ICO and OSD files from an alternate location. The App-V client then creates the appropriate shortcuts and registers file type associations based on the information generated by the App-V Server. This is a rather simplified description of the process so for a more detailed explanation I would recommend reading the following document:

http://download.microsoft.com/download/f/7/8/f784a197-73be-48ff-83da-4102c05a6d44/AppPubandClientInteraction.docx

In addition, the following blog post from last year is also an excellent reference:

http://blogs.technet.com/softgrid/archive/2009/02/17/a-story-of-a-publishing-refresh-request.aspx

When there is an error during the “refresh” portion of the process (communicating with the server to retrieve the APPLIST.XML) causing the refresh not to complete successfully, you will see an error in the user interface. Often these errors relate to authentication, networking issues, XML malformation, or general misconfiguration.  But sometimes problems will occur during the “publishing” portion of the publishing refresh. When you refresh, you may not get any errors but you still may not have the entire application configuration you would expect. This is an issue we see every now and then from customers where they ask “refresh is succeeding but where are all my icons?” Or they say “some applications may appear where they are supposed to be but others do not.” If you find yourself in this situation then here are some tips on how to troubleshoot these kinds of issues:

Troubleshooting Publishing Problems

Often, a standard SFTLOG.TXT log will give you exactly what you need to troubleshoot these problems. Switching to a verbose log will dump the AppList.XML and other information that will make the log file quite large and more cumbersome to parse. While publishing problems do not generate errors in the user interface, there are always positive and negative result codes (rc codes) in the SFTLOG.TXT file even under its default log level.

When you encounter these issues, navigate to the SFTLOG.TXT file and look for lines containing the following string “The app manager could not create an application from” to determine where the publishing errors are in the SFTLOG.TXT. The majority of these errors come from issues accessing and/or parsing OSD files and icons.

Common Issue #1: The app manager could not create an application from “APPLICATIONNAME.osd’ (rc 0C405564-00000002).

These issues are caused by the client application manager being unable to access either the icons or the OSD file based upon the locations sent by the server or what may be specified as an overriding value in the OSDSourceRoot or the IconSourceRoot.

Common Issue #2: The app manager could not create an application from ‘APPLICATIONNAME.osd’ (rc 07708144-0000000E).

When this happens, you can get the specific error string above this message. The most common one is:

The Application Virtualization Client could not parse the OSD file ‘<GUIDNAME>.osd’. Reason: Newer client required (rc 07708104-0000000E)

This issue happens when the OSD for the application has a client requirement that exceeds the current client version. This may happen more often now with the 4.6 sequencer being backward compatible for existing 4.5 clients. For example, if you sequence an application in 4.6, the default tag for CLIENTVERSION will be 4.6.0.0 as shown below:

<DEPENDENCY>
<CLIENTVERSION VERSION=”4.6.0.0″/>
</DEPENDENCY>

You will need to change this to 4.5.0.0 if you plan on deploying this application on 4.5 clients.

Common Issue #3: The app manager could not create an application from ‘APPLICATIONNAME.osd’ (rc 00000C45-00000107).

This happens when the Client Application Manager cannot parse the XML in the OSD file for the application. Like with common issue #2, you will get further information above this error such as:

The client has encountered an XML parsing problem. The error code is 0xC00CE557.

Reason: Invalid xml declaration.

Source Text: <?xml version=”1. 0″ standalone=”no”?>, (near line 1, character position 6).

Often these errors will point to the specific line and character position containing the error.

Common Issue #4: The app manager could not create an application from ‘APPLICATIONNAME.osd’ (rc 0C405564-00000003).

This can happen if the path of the global data directory is invalid. The OSD Cache folder either does not exist or cannot be accessed due to redirection. For example, the OSD Cache folder may have been manually removed. Verify the global data directory is located in an accessible folder and has not necessarily been redirected to a network share.

Common Issue #5: The app manager could not create an application from ‘APPLICATIONNAME.osd’ (rc 07708A44-00000007).

This error, depending on the version may also be preceded by the following line:

The Application Virtualization Client could not parse the OSD file ‘<GUID>.osd’. Reason: No valid implementation for this machine (rc 07708A04-00000007)

This issue occurs when the OSD contains specific OS implementation values but the App-V client’s operating system is not included. The <OS VALUE> tag is under the <IMPLEMENTATION> element in the OSD. The supported updated values for 4.6 can be found here:

http://blogs.technet.com/softgrid/archive/2009/10/29/updated-os-value-xml-tag-reference-and-supported-client-versions.aspx