søndag den 25. september 2011

Hosting SuperOffice 7 on Citrix/RDP

I have been spending a lot of time looking into SuperOffice 7 the last few weeks, preparing automatic provisioning and hosting of SuperOffice 7. I want to briefly talk about some of the issues I ran into, and how I worked around them to get a working environment up and running.

SuperOffice can work in a 2-tier solution with a SQL database on a server somewhere and a fat client installed on a client computer. In this solution when SuperOffice is started it load its configuration from the installation directory (C:\Program Files (x86)\SuperOffice\SuperOffice 7 Windows)
SuperOffice can also run as a Web Client in a semi 3-Tier solution. You have your database on some severe, you have a Webserver running 1 or more websites, each website with it’s own configuration file(s).

From a hosting perspective that means you would prefer the web approach, but not everything in SuperOffice works from the web client. And, for now, some of the administrative tasks cannot be done though the web interface either. Many 3rd party add-ons for superoffice is not designed to work from the web client either.

In a hosting environment with Citrix/Remote Desktop servers is sometimes installed as dedicated per customer, and sometimes installed in a “shared hosting” environment where different customers facilitate the same farm of server. If customers have their own servers, keeping the configuration files in a single location shouldn't post any problems, but in a shared environment you don’t want different users from different customers being able to only talk with 1 SuperOffice database

I'm sure there's many ways to handle this, but for now I see 2 working solutions. The SuperOffice 7 client supports an parameter called IniPath. If we start SOCRM.exe or SOAdmin.exe with this parameter it will load the superoffice.config and superoffice.ini files from that location instead. That does how ever pose a few problems. SuperOffice still use a lot of COM interfacing ( ActiveX ). Say you have word open and want to archive the document you have open. If SuperOffice is running you will see
and everything works perfectly. If how ever, SuperOffice is not running you will see
And if you click that button it will launch the SuperOffice client for you. This launch will not know about the IniPath parameter and SuperOffice will now be searching the wrong place for the configuration files.

I’m not sure if you could do an search and replace in registry and change the launch parameters, but there is another way

In the environment I’m working with right now we use Microsoft Application Virtualization ( App-V ) to deploy applications on all Citrix XenApp and Remote Desktop Servers. When you are sequencing SuperOffice 7 you can modify the File Properties for SuperOffice.config and SuperOffice.ini to make them User Specific


So I created a small “initializer” application and added to the package, that each user have to call once before using SuperOffice. That application copy in the configuration files for that specific customer, and from now on every time superoffice starts it is reading the “correct” configuration files. ( Note: you need to set the right permissions on the files, to allow users to change these files, while sequencing SuperOffice 7 )

5 kommentarer:

  1. Hi!

    Do you have to pack office together with superoffice to make the maillink and ribbons work, using app-v?

  2. Having Office as a seperate AppV package, and linking SuperOffice as an AddOn package makes things alot easyere to "understand" and work with.
    But no, you do not, we don't have office inside AppV either. But in order for ribbons to load, when you start an office application, it needs to beable to see the registry keys and application files = OFfice needs to be started in context of the SuperOffice AppV package.
    You do that, by adding the Office Shortcut's to the AppV package. That way, if a user have access to the SuperOffice AppV package, the client will "overwrite" the users shortcuts to the local Office Package, and now when ever the user launches an Office Application, they will also gave the SuperOffice addin, loaded

  3. Hello, do you have some more details regarding the packaging of superoffice for your environment. When running the appv package we're trying to make, SuperOffice runs just fine, but the loading/starting of the maillink when outlook is launched gives an error. Did you encounter this when you were making your package. Office is installed on xenapp image, superoffice is made as standard package and shortcuts copied from the appv packaging

    1. What error did you receive ? what does so.log say ?

    2. I get MailLink will exit: unable to create object of type "MailItem": System.IO.FileNotFoundException: Retreiving the COM class factory for component with CLSID{ here is CLSID is} failed due to the following error: 8007007e The Specified module could not be found. (Exception from HRESULT: 0x8007007E)