View Full Version : Is IS 12 compatible with IIS 7.0?

07-17-2006, 06:28 PM

Does anyone know if IS 12 supports Longhorn's IIS 7.0? Appearantly, we run our installation package created in IS 10.5 on Longhorn, and failed during creation of IIS virtual directories.

IS sales mentions to upgrade to 12, but I need to make sure if IIS 7 is supported by IS 12 (Sales does not know about IIS 7).



07-18-2006, 10:34 AM
If you drill down on the feature list (www.macrovision.com > Products > InstallShield Windows > ...) you eventually get to IIS Support (http://www.macrovision.com/products/flexnet_installshield/installshield/features/IIS_6dot0_Support.html) which lists only IIS 6. I believe IIS 7 support is on our to-do-soon (in a future release) list.

08-30-2006, 04:39 PM
We are currently investigating IIS 7 support in InstallShield. However, I have successfully been able to install an InstallShield 12 setup onto a Vista machine (not Longhorn, but Vista) using Beta 2. This is VERY initial research though.

The key was right-clicking the setup and choosing the option to run as an administrator. If you are still working on this, please post your results as it could be very interesting to our other IIS 7 users.

09-06-2006, 03:05 PM
If working with IIS 7, you might want to subscribe to the IIS forums as well. Following is a link that deals directly with this issue:

It explains that the 'Metabase Compatibility component of IIS 7.0' must be installed and is not installed by default. You will find this component when clicking the optional features of IIS.

11-27-2006, 06:32 PM
Is there an update to this yet? It won't be long before we have to support installations on Vista. What is planned in terms of updates to legacy versions (9 and 10)?

11-27-2006, 07:04 PM
If you choose to install legacy object support when you install IIS 7, the old Installshield setups should work. Please post if you have any problems.

11-28-2006, 12:28 PM
Yes, it works fine if the end user has installed the legacy object support (not included by default). It would be great though if we could successfully install on a default Vista installation.
Do you have a recommended way to detect if legacy object support has not been installed so that we can prompt the user? There doesn't seem to be an error raised if the virtual directories can't be created.

11-28-2006, 12:31 PM
I'll have to do a bit of research on that. Previously, I had a method of detecting legacy support but that method doesn't seem to work anymore. It seemed to changed between two beta versions of Vista I'm using. So, I'll see what I can find on the release version of Vista and get back to you.

11-28-2006, 01:35 PM
I have posted my IIS functions to the forum. It modifies the metabase via objects directly to the IIS metabase. Here is the link (http://community.macrovision.com/showthread.php?t=164734). You might want to give it a try.

11-29-2006, 02:42 PM

Have you tested these functions under Vista without the compatibility module? They seem to use ADSI [ CoGetObject( "IIS://Localhost/W3svc/" ... ) ], which is part of what is not available on a out-of-the-box Vista machine. Or am I wrong?

11-30-2006, 10:40 AM
I did not test these scripts, but if they use the ADSI objects then you will have to choose to install the IIS 6 metabase compatibility option when installing IIS 7. However, you'll find that Vista 'out of the box' never has IIS installed at all. So, you have to install IIS either way, but while installing if you are using ADSI scripts you just need to ensure that you select the appropriate IIS 6 options.

11-30-2006, 11:37 AM
Unfortunately I can't tell you right now what the official method would be to detect legacy object support from our end. I'm sure there are several ways, but I think one good way to do it would be call CoGetClassObject on GETAdminBaseCLSID(TRUE). Example:

HRESULT hr = CoGetClassObject(GETAdminBaseCLSID(TRUE), CLSCTX_SERVER, &csiMachineName, IID_IClassFactory, (void**) &pcsfFactory);

if the HRESULT fails, you apparently don't have legacy object support.

Just to be clear, this is initial research, I just didn't want to leave you hanging with no suggestions.

12-10-2006, 11:23 PM
Hi David.

I'm fairly new to InstallShield - where would CoGetClassObject(...) be called from? I'm using an InstallScript MSI project - ideally i need to determine if 'IIS Metabase and IIS 6 configuration compatibility' is installed in OnFirstUIBefore().


12-12-2006, 12:32 PM
The example I gave was a little bit of C++ code. We can't support writing code for features outside of what InstallShield supports. However, I believe you can call CoGetClassObject from InstallScript (in your case, it looks like you want it in OnFirstUIBefore).

Alternatively, you can write the code in C++ (or whatever language) and get to the code via a custom action.

12-12-2006, 12:34 PM
One of our support guys gave me this article which I think could be helpful:

Thanks Cary!

12-12-2006, 09:59 PM
Thanks for the reply but could you expand on this a little? What COM object do i need to specify in the CoCreateObject() call?

Also CoGetClassObject() doesn't appear to be callable from InstallScript (also it's not referenced in the help files).

12-13-2006, 05:14 PM
Sorry I do not have experience using COM objects from InstallScript. However, if you write your own dll using CoGetClassObject you can call into it via a custom action. There should be plenty of examples of CoGetClassObject out there...

02-05-2007, 06:50 PM
Sorry to resurrect a thread that's been dormant for a couple of months, but I can't find the answer to this anywhere. Is there an update on IS 12 (perhaps with the just released service pack) having compatibility with IIS7? Specifically, in a way that DOESN'T require enabling the legacy object handling on the local machine? We're in the process of deciding on upgrading to IS 12 for the full vista support, but we ran into these issues with IS9/IS10 and IIS7 and I can't find anything on the site that says one way or the other if they have been handled.


(Alternatively, if not, is there now a good way to determine if the required items are installed and provide proper messages/information to the user?)

02-06-2007, 10:02 AM

I have posted this already to this thread. I have posted on a different thread all my IIS functions. These functions modify the IIS metabase directly through ASDI API. Here is the link (http://community.macrovision.com/showthread.php?t=164734). I should also mention that they are untested versus Windows Vista. Please let me know how it goes if you use these functions.

02-06-2007, 04:47 PM
Legacy object support is still required, even with the service pack. This requirement will be removed in a future release.

My post about 'CoGetClassObject' explains how to detect if legacy object support is on the target machine.

02-06-2007, 06:32 PM
Thanks David,

I appreciate the quick response, even if it wasn't the response I was hoping for. At least we know where we stand now and we can try working with CoGetClassObject to provide feedback to our users.