You can cause the ConfigureIIS custom action to be skipped by setting the
"SKIPCONFIGUREIIS" Property to something. IIS7 is a huge problem for us right
now and we're trying to push the very high bug count down right now before
tackling more feature work.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Amy Rosewater
Sent: Wednesday, May 14, 2008 13:58
To: [EMAIL PROTECTED]; wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] IIS 7.0 and Wix 3.0.4019 - PLS help!
Hi Robert,
Thanks for the reply. My issue isn't so much if I can get ConfigureIIS custom
action to work with IIS 7, but more that it doesn't cause the error during the
install, whether I use it or not. The issue is I have to support both Windows
Server 2003, and Windows Server 2008 with my install, and the presence of those
IIS nodes in my wxs file causes the scheduling of the ConfigureIIS custom
action, even if when I detect the IISMAJORVERSION="#7" I choose to disable
those components.
Amy
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Wednesday, May 14, 2008 2:50 PM
To: Amy Rosewater; wix-users@lists.sourceforge.net
Subject: RE: [WiX-users] IIS 7.0 and Wix 3.0.4019 - PLS help!
Hello Amy,
There is no native support in WIX for IIS7. So, unless you have the module
that allows the old api to work (I can't remember what it is called right
now), The Configure IIS stuff won't work.
What was recommended to me (and what I have done) was to use XmlConfig to
modify the IIS7 configuration file.
The configuration file you are looking for is:
"%windir%\system32\inetsrv\config\applicationHost.config"
You should be able to find ample info on how to modify an Xml file with
XmlConfig.
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Amy Rosewater
Sent: Wednesday, May 14, 2008 4:40 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] IIS 7.0 and Wix 3.0.4019 - PLS help!
This is my second desperate posting for help. Anyone with any ideas feel free
to send them my way. I have an install that sets up Web Application in either
a virtual directory under the Default Web Site, or as a separate website. In
order to find the default website, I use the following wix:
<iis:WebSite Id="DefaultWebSite" Description="Default Web Site">
<iis:WebAddress Id="DefaultWebSiteAddress" IP="*" Port="80" />
</iis:WebSite>
I have this node at the same level as my property and directory nodes such that
it just finds the already existing Default Web Site, and does not alter it on
uninstall. I also have a few Components for installing against IIS (below is
my Virtual Directory component).
<Component Id="CreateVirtualDirectory"
Guid="5f9a10ee-72b1-11dc-8314-0800200c9a66">
<Condition><![CDATA[(IISCONFIGURATIONTYPE="0")]]></Condition>
<iis:WebAppPool Id="WebAppPoolVirtualDirectory"
Name="iVantageAppPool" Identity="other" User="InstallUser" />
<iis:WebVirtualDir Id="WebVirtualDir"
Alias="[IISVIRTUALDIRECTORY]" Directory="MainWebDirectory"
WebSite="DefaultWebSite">
<iis:WebApplication
Id="MainWebApplicationVirtualDirectory" Name="iVantage50"
WebAppPool="WebAppPoolVirtualDirectory" />
<iis:WebDirProperties
Id="WebDirPropertiesVirtualDirectory" AnonymousAccess="yes"
AnonymousUser="InstallUser" Write="yes" DefaultDocuments="Default.aspx"
Execute="yes" Read="yes" Script="yes" AspDetailedError="yes" />
</iis:WebVirtualDir>
</Component>
When running this install on Windows Server 2003 with IIS 6.0, there are no
problems. When running this install on Windows Server 2008 with IIS 7.0, I get
the following (from my verbose log):
ConfigureIIs: Skipping ScaInstallWebSvcExt() because IIsWebServiceExtension
table not present
ConfigureIIs: Skipping ScaInstallMimeMap() - required table not present
ConfigureIIs: Skipping ScaGetHttpHeaders() - required tables not present.
ConfigureIIs: Skipping ScaGetWebErrors() - required tables not present.
ConfigureIIs: Error 0x80070005: Failed to find web root
ConfigureIIs: Error 0x80070005: failed to read IIsWebSite table
Error 26002. Failed to read IIsWebSite table. (-2147024891 )
I have installed all the possible features on my IIS Web Server in Windows
Server 2008, thinking that my issue might be related to server configuration.
I have looked through the Wix source code in the hopes of being able to figure
out what is going on in the code when these errors occur. I need to know if
something is incorrectly configured on my server, or if there is something
wrong with my wxs. Please forgive me if this interpretation is incorrect as I
am not much of a c++ developer... :( but it looks like this is what is
happening in the custom action.
(1) ConfigureIIS action is evoked based on the presence of my various IIS
component nodes and the subsequent scheduling of that CustomAction.
(2)ConfigureIIS calls the ScaWebsRead method, the source of the second error
message:
hr = ScaWebsRead(piMetabase, &psmmList, &pswList, &pshhList, &psweList);
MessageExitOnFailure(hr, msierrIISFailedReadWebSite, "failed to read
IIsWebSite table");
(3) Now it appears that in this method, wix open views on the various IIS
tables in the install database. We get a view on IISWebAddress,
IISWebApplication (if present) and IISWebSite. Next we iterate the records
returned from IISWebSite. In my case there are 3:
a. Default Web Site - from my iis:WebSite node above
b. Two Web Sites from Components in my install (one to create a website
with a port, and the other to create a website with an IP address).
(4) It appears to successfully read the data from this first record (my
Default Web Site), getting Address, IP, Port, Header and Secure values without
error.
(5) We then get to this code - the source of the first error message:
// TODO: fix this to look for the description as well (or is address enough)?
// find the web root
dwLen = METADATA_MAX_NAME_LEN;
hr = ScaWebFindBase(piMetabase, *ppswList,
psw->wzKey,
psw->swaKey.wzIP,
psw->swaKey.iPort,
psw->swaKey.wzHeader,
psw->swaKey.fSecure,
psw->wzWebBase, &dwLen);
if (S_OK == hr)
{
psw->fBaseExists = TRUE;
}
else if (S_FALSE == hr && FALSE == psw->fHasComponent) // if we're not
installing it, fail if it wasn't found
{
ExitOnFailure1(hr = HRESULT_FROM_WIN32(ERROR_NOT_FOUND), "failed to
find web site: '%S'", psw->wzKey);
}
else if (S_FALSE == hr)
{
dwLen = METADATA_MAX_NAME_LEN;
hr = ScaWebFindFreeBase(piMetabase, *ppswList, psw->wzWebBase,
dwLen);
psw->fBaseExists = FALSE;
}
ExitOnFailure(hr, "Failed to find web root");
(6) Can anyone help me out here in understanding what it means when there is
a failure here? Is anyone familiar with what is going on in ScaWebFindBase?
From the code I can glean that it first attempts to find the web in memory, and
then it looks in the metabase? This doesn't help me intuit what is going on
but I am hoping it might help someone else out there...
Thanks in advance for your help.
A
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users