Udostępnij za pośrednictwem


A Look Under the Covers - The LOCAL_INTERACTION_ALLOWED Tag

Introduction

Application virtualization is a key feature of the SoftGrid platform.  It provides administrators with a way to prevent applications from interfering with or modifying the local environment.  It can also prevent two virtual applications from conflicting with each other by confining many of their activities and interactions to a virtual environment.

However, virtualization can also prevent locally installed applications from interacting with a virtualized application.  It is also possible for local applications such as Outlook to end up running inside virtual environments, preventing other local applications from interacting with them.

In addition, some SoftGrid deployment scenarios include situations where some applications are installed locally and others are virtualized.  It may, for example, be desirable to allow virtual applications to send mail through a locally installed version of Outlook, or use a local copy of Windows Live Messenger.  Much of this communication takes two forms: through named objects (mutexes, shared memory, etc.) and through COM objects.

When local interaction is disabled (the default), objects in the virtual environment are isolated such that their names and GUIDs do not conflict with those used on the local system or in other virtual environments.  When local interaction is enabled via an OSD policy, named objects and COM objects are created in the global namespace rather than isolated inside a particular virtual environment.  In addition, virtualized COM requests are first forwarded to the local system to allow it to launch and manage them.  If the request fails,  such as if the object does not exist in the local configuration, the COM object is launched from resources (registry, files, etc) in the virtual environment.  Once launched, the COM object can be seen outside the virtual environment but the virtualized resources (registry, file, etc) are not visible.

Configuration

Local interaction is a policy that is set in the OSD for an application.

<SOFTPKG>
    <IMPLEMENTATION>
        <VIRTUALENV>
            <POLICIES>
                <LOCAL_INTERACTION_ALLOWED>TRUE</LOCAL_INTERACTION_ALLOWED>
            </POLICIES>
        </VIRTUALENV>
    </IMPLEMENTATION>
</SOFTPKG>

Although the setting is specified in the OSD it really applies to the package and therefore all applications that use the same package.  For example, if you set LOCAL_INTERACTION_ALLOWED to TRUE in “Microsoft Word” but not in “Microsoft Excel”, the behavior of the system will change depending on what application you launch first.  The behavior is setup when the virtual environment is first created and is not modified as additional applications in the package are launched.

Troubleshooting

Because enabling LOCAL_INTERACTION_ALLOWED can introduce application conflicts it is best that you only implement this if absolutely necessary, and be sure to test in your environment before rolling out a package that uses this tag enterprise wide.  This tag can be useful if you're troubleshooting interoperability issues with your virtualized app, such as Outlook forms that don't work as expected or even when virtualizing Microsoft Office 2007, but you must still be careful not to implement it unless all other possible solutions are investigated. 

Chris Lord
Sr. Program Manager
Microsoft Corp.

Comments

  • Anonymous
    January 01, 2003
    Chris Lord (one of the prog managers) sent up a cool post about the local interaction policy! I am forever

  • Anonymous
    May 11, 2011
    I am getting this message whenever I try to access Word/Excel, Application Virtualization Client Service error code. I have a HP Omni 100 pc, just purchased it about 4 months ago. This error has been coming up for at least a week. It runs Windows 7, 64 bit. How do I fix this issue by myself? I need detailed instructions for this, as this is a issue I have never encountered on a computer. Thank you for any help that you can give.

  • Anonymous
    May 30, 2012
    Dear Chris we packaged a web based application using a specific java runtime version. I have an issue with the drag and drop windows functionality which does not work with the virtualized application. Indeed the end user should be able to drag and drop local desktop files the virtualized application (web based). How can we enable this ?  thank you for your help

  • Anonymous
    April 22, 2013
    I have an applciation DYMO Label which has DYMO printer connection. by default if we launch shortcut its saying DymoPrinter is not connected. I sequenced it ,Package is working fine as source.its fine. Here doubt is if enduser want to connect printer what should we do? Do i need to enable LOCAL INTERACTION policy to TRUE?