Rob,

That's a really good question.  I'm not entirely sure where to check to
make sure they are uninstalled, however, it made me wonder
about something.  I have a requirement for my company that I must be
able to install multiple instances of our application side by
side.  I have embedded transforms to achieve this, and as such the
product guid is different every time I install.  However, these
component guids are not different.  Could that have anything to do with
it?

A

-----Original Message-----
From: Rob Mensching [mailto:rob.mensch...@microsoft.com] 
Sent: Thursday, December 18, 2008 1:36 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] uninstall fails to drop database, iis objects

Are the Components actually being uninstalled?

-----Original Message-----
From: Amy Rosewater [mailto:arosewa...@spectrumhr.com]
Sent: Thursday, December 18, 2008 12:33
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] uninstall fails to drop database, iis objects

Hi All,

My installer is having a problem that didn't used to occur.  My install
copies files, creates a virtual directory, app pool, local windows user,
database and login within that database (amongst other things).  When I
execute the uninstall, the database, database login, iis virtual
directory, iis app pool and web application do not get dropped.

I am on the most recent weekly release of Wix 3.0.4813.0

I have attached below my database component, my IIS components, and
excerpts from my log file which show that the UninstallSqlData is not
executing any of my SqlString/SqlScript elements marked to execute on
uninstall.  The various properties utilized below are all set to the
value used during installation before "ValidateProductID".

I can't think of why this stopped working.  Is there something obvious
that I am doing wrong?

Any help anyone can offer would be greatly appreciated.

Thanks,

Amy

My database component is as follows:

<Component Id="CreateDatabaseWindowsAuth"
Guid="aa332810-e625-11dc-95ff-0800200c9a66">
       <Condition><![CDATA[(SQLSERVERISLOCAL="true") AND
(SQLUSEWINDOWSAUTH="checked")]]></Condition>
       <sql:SqlDatabase Id="IVantageDatabaseWA" Server="[SQLSERVER]"
Database="[DATABASENAME]" CreateOnInstall="yes" DropOnUninstall="yes">
       <sql:SqlFileSpec Id="IVantageDatabaseFileWA"
Filename="[DataDirectory][DATABASENAME][DATABASEFILEEXT]"
Name="[DATABASENAME]" />
       <sql:SqlLogFileSpec Id="IVantageDatabaseLogFileWA"
Filename="[DataDirectory][DATABASENAME][DATABASELOGFILENAMEEXT][DATABASE
LOGFILEEXT]" Name="[DATABASENAME][DATABASELOGFILENAMEEXT]" />
       <!--ON INSTALL-->
       <sql:SqlString Id="UseNewDatabaseWA" ExecuteOnInstall="yes"
SQL="USE [DATABASENAME]" Sequence="002" />
       <!--Create database from scripts-->
       <sql:SqlScript Id="CreateDefaultsWA" ExecuteOnInstall="yes"
BinaryKey="iVantage50Defaults.sql" Sequence="003" />
       <sql:SqlScript Id="CreateRulesWA" ExecuteOnInstall="yes"
BinaryKey="iVantage50Rules.sql" Sequence="004" />
       <sql:SqlScript Id="CreateUserDefinedTypesWA"
ExecuteOnInstall="yes" BinaryKey="iVantage50UserDefinedDataTypes.sql"
Sequence="005" />
       <sql:SqlScript Id="CreateTablesWA" ExecuteOnInstall="yes"
BinaryKey="iVantage50Tables.sql" Sequence="006" />
       <sql:SqlScript Id="CreateForeignKeysWA" ExecuteOnInstall="yes"
BinaryKey="iVantage50ForeignKeys.sql" Sequence="007" />
       <sql:SqlScript Id="CreateUserDefinedFunctionsWA"
ExecuteOnInstall="yes" BinaryKey="iVantage50UserDefinedFunctions.sql"
Sequence="008" />
       <sql:SqlScript Id="CreateViewsWA" ExecuteOnInstall="yes"
BinaryKey="iVantage50Views.sql" Sequence="009" />
       <sql:SqlScript Id="CreateStoredProceduresWA"
ExecuteOnInstall="yes" BinaryKey="iVantage50StoredProcedures.sql"
Sequence="010" />
       <!--Create Logins-->
       <sql:SqlString Id="DropLoginIfExistsWA" ExecuteOnInstall="yes"
SQL="if exists (select * from sys.syslogins where
name='[SQLAPPLICATIONLOGIN]') DROP LOGIN [SQLAPPLICATIONLOGIN]"
Sequence="011" />
       <sql:SqlString Id="CreateIVantageApplicationLoginWA"
ExecuteOnInstall="yes" SQL="CREATE LOGIN [SQLAPPLICATIONLOGIN] WITH
PASSWORD = '[SQLAPPLICATIONPASSWORD]', DEFAULT_DATABASE =
[DATABASENAME]" Sequence="012" />
       <!--Create Users and Assign to Roles in the database-->
       <sql:SqlString Id="DropUserIfExistsWA" ExecuteOnInstall="yes"
SQL="if exists (select * from sys.sysusers where
name='[SQLAPPLICATIONLOGIN]') DROP USER [SQLAPPLICATIONLOGIN]"
Sequence="013" />
       <sql:SqlString Id="CreateIVantageApplicationUserWA"
ExecuteOnInstall="yes" SQL="CREATE USER [SQLAPPLICATIONLOGIN] FOR LOGIN
[SQLAPPLICATIONLOGIN]" Sequence="014" />
       <sql:SqlString Id="AssignIVantageApplicationUserToRoleWA"
ExecuteOnInstall="yes" SQL="sp_addrolemember 'db_owner',
'[SQLAPPLICATIONLOGIN]'" Sequence="015" />
       <!--On Uninstall Only-->
       <sql:SqlString Id="DisconnectUsersFromDatabaseWA"
ExecuteOnUninstall="yes" ExecuteOnInstall="no" SQL="ALTER DATABASE
[DATABASENAME] SET SINGLE_USER with ROLLBACK IMMEDIATE" Sequence="901"/>
       <sql:SqlString Id="DropLoginIfExistsIninstallWA"
ExecuteOnUninstall="yes" ExecuteOnInstall="no" RollbackOnInstall="yes"
SQL="if exists (select * from sys.syslogins where
name='[SQLAPPLICATIONLOGIN]') DROP LOGIN [SQLAPPLICATIONLOGIN]"
Sequence="902" />
</sql:SqlDatabase>
</Component>

My IIS components are as follows:

<iis:WebApplication Id="MainWebApplication"
Name="[IISWEBAPPLICATIONNAME]" WebAppPool="WebAppPool" />
<iis:WebDirProperties Id="WebDirPropertiesAnonymous"
AnonymousAccess="yes" AnonymousUser="InstallUser" Write="yes"
DefaultDocuments="Default.aspx" Execute="yes" Read="yes" Script="yes"
AspDetailedError="yes" />
<DirectoryRef Id="TARGETDIR">
       <!--These components can be shared across multiple IIS6
Components-->
<Component Id="CreateUser" Guid="5f36c780-e62b-11dc-95ff-0800200c9a66">
       <Condition><![CDATA[IISMJRVRSN="#6"]]></Condition>
<util:User Id="InstallUser" Name="[APPLICATIONUSER]"
Password="[APPLICATIONPASSWORD]" CreateUser="yes"
PasswordNeverExpires="yes" CanNotChangePassword="yes"
RemoveOnUninstall="yes" UpdateIfExists="yes" Domain="[ComputerName]"
LogonAsService="yes">
       <util:GroupRef Id="IISWorkerProcessGroup"/>
       </util:User>
</Component>
       <Component Id="CreateAppPool"
Guid="28676FA9-2BF7-4815-8732-EF2CF0B8470E">
       <Condition><![CDATA[IISMJRVRSN="#6"]]></Condition>
<iis:WebAppPool Id="WebAppPool" Name="[IISAPPPOOLNAME]" Identity="other"
User="InstallUser" IdleTimeout="0"  RecycleMinutes="0"
RecycleRequests="0">
       <iis:RecycleTime Value="03:00"/>
       </iis:WebAppPool>
       </Component>
       <!--These components have something unique that must be within
this specific component IIS6 Component-->
       <Component Id="CreateVirtualDirectoryAnonymous"
Guid="5f9a10ee-72b1-11dc-8314-0800200c9a66">
       <Condition><![CDATA[(IISMJRVRSN="#6") AND
(IISCONFIGURATIONTYPE="0") AND
(IISUSEWINDOWSAUTHENTICATION<>"checked")]]></Condition>
       <iis:WebVirtualDir Id="WebVirtualDir"
Alias="[IISVIRTUALDIRECTORY]" Directory="MainWebDirectory"
WebSite="DefaultWebSite" WebApplication="MainWebApplication"
DirProperties="WebDirPropertiesAnonymous" />
        </Component>
</DirectoryRef>

>From my log file:
Action start 13:02:23: MigrateFeatureStates.
Action ended 13:02:23: MigrateFeatureStates. Return value 0.
Action start 13:02:23: InstallValidate.
Action ended 13:02:27: InstallValidate. Return value 1.
Action start 13:02:27: InstallInitialize.
Action ended 13:02:27: InstallInitialize. Return value 1.
Action start 13:02:27: ProcessComponents.
Action ended 13:02:28: ProcessComponents. Return value 1.
Action start 13:02:28: UnpublishFeatures.
Action ended 13:02:28: UnpublishFeatures. Return value 1.
Action start 13:02:28: SchedSecureObjectsRollback.
Action start 13:02:28: ExecSecureObjectsRollback.
Action ended 13:02:28: ExecSecureObjectsRollback. Return value 1.
Action start 13:02:28: ExecSecureObjectsRollback.
Action ended 13:02:28: ExecSecureObjectsRollback. Return value 1.
Action start 13:02:28: ExecSecureObjectsRollback.
Action ended 13:02:28: ExecSecureObjectsRollback. Return value 1.
Action start 13:02:28: ExecSecureObjectsRollback.
Action ended 13:02:28: ExecSecureObjectsRollback. Return value 1.
Action start 13:02:28: ExecSecureObjectsRollback.
Action ended 13:02:28: ExecSecureObjectsRollback. Return value 1.
Action ended 13:02:28: SchedSecureObjectsRollback. Return value 1.
Action start 13:02:28: RollbackCopyFiles.
Action ended 13:02:28: RollbackCopyFiles. Return value 1.
Action start 13:02:28: StopServices.
Action ended 13:02:28: StopServices. Return value 1.
Action start 13:02:28: DeleteServices.
Action ended 13:02:28: DeleteServices. Return value 1.
Action start 13:02:28: UninstallCertificates.
UninstallCertificates:  Skipping ConfigureCertificates() - required
table not present.
Action ended 13:02:28: UninstallCertificates. Return value 1.
Action start 13:02:28: UninstallSqlData.
Action ended 13:03:02: UninstallSqlData. Return value 1.
Action start 13:03:02: RemoveAnalysisServerDatabase.
SFXCA: Extracting custom action to temporary directory:
C:\WINDOWS\Installer\MSI2D3.tmp-\
SFXCA: Binding to CLR version v2.0.50727
Calling custom action
ManagedCustomActions!ManagedCustomActions.CustomActions.RestoreRemoveAna
lysisServer
 -- RestoreRemoveAnalysisServer called.
 -- Remove entered
 -- Connection string written: Data Source=PETER\INSTANCE1;Password=
 -- Connected to server.
 -- Analysis services database dropped
Action ended 13:03:06: RemoveAnalysisServerDatabase. Return value 1.
Action start 13:03:06: RemoveFiles.
Action ended 13:03:06: RemoveFiles. Return value 0.
Action start 13:03:06: RemoveFolders.
Action ended 13:03:06: RemoveFolders. Return value 1.
Action start 13:03:06: UndoCopyFiles.
Action ended 13:03:06: UndoCopyFiles. Return value 1.
Action start 13:03:06: RemoveReportingServicesDomain.
SFXCA: Extracting custom action to temporary directory:
C:\WINDOWS\Installer\MSI2D4.tmp-\
SFXCA: Binding to CLR version v2.0.50727
Calling custom action
ManagedCustomActions!ManagedCustomActions.CustomActions.RemoveReportingS
ervicesDomain
 -- RemoveReportingServicesDomain called.
 -- RemoveReportingServicesDomain exception Invalid URI: The hostname
could not be parsed..
Action ended 13:03:09: RemoveReportingServicesDomain. Return value 1.
Action start 13:03:09: CreateFolders.
Action ended 13:03:09: CreateFolders. Return value 1.
Action start 13:03:09: ConfigureUsers.
Action ended 13:03:09: ConfigureUsers. Return value 1.
Action start 13:03:09: InstallFiles.
Action ended 13:03:09: InstallFiles. Return value 1.
Action start 13:03:09: InstallCertificates.
InstallCertificates:  Skipping ConfigureCertificates() - required table
not present.
Action ended 13:03:09: InstallCertificates. Return value 1.
Action start 13:03:09: ConfigureIIs.
Action start 13:03:09: StartMetabaseTransaction.
Action ended 13:03:09: StartMetabaseTransaction. Return value 1.
Action start 13:03:09: RollbackMetabaseTransaction.
Action ended 13:03:09: RollbackMetabaseTransaction. Return value 1.
Action start 13:03:09: CommitMetabaseTransaction.
Action ended 13:03:09: CommitMetabaseTransaction. Return value 1.
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:  Skipping ScaInstallWebDirs() because IIsWebDir table not
present
ConfigureIIs:  Skipping ScaInstallFilters() - no IIsFilter table
ConfigureIIs:  Skipping ScaInstallProperty() - required table not
present
ConfigureIIs:  Skipping ScaWebSvcExtCommit() because there are no web
service extensions in the list
Action ended 13:03:09: ConfigureIIs. Return value 1.
Action start 13:03:09: InstallSqlData.
Action ended 13:03:43: InstallSqlData. Return value 1.
Action start 13:03:43: DuplicateFiles.
Action ended 13:03:43: DuplicateFiles. Return value 1.
Action start 13:03:43: SchedXmlConfig.
Action ended 13:03:44: SchedXmlConfig. Return value 1.
Action start 13:03:44: SchedXmlFile.
Action start 13:03:44: ExecXmlFileRollback.
Action ended 13:03:44: ExecXmlFileRollback. Return value 1.
Action start 13:03:44: ExecXmlFileRollback.
Action ended 13:03:44: ExecXmlFileRollback. Return value 1.
Action start 13:03:44: ExecXmlFileRollback.
Action ended 13:03:44: ExecXmlFileRollback. Return value 1.
Action start 13:03:44: ExecXmlFileRollback.
Action ended 13:03:44: ExecXmlFileRollback. Return value 1.
Action start 13:03:44: ExecXmlFileRollback.
Action ended 13:03:44: ExecXmlFileRollback. Return value 1.
Action start 13:03:44: ExecXmlFile.
Action ended 13:03:44: ExecXmlFile. Return value 1.
Action ended 13:03:44: SchedXmlFile. Return value 1.
Action start 13:03:44: InstallServices.
Action ended 13:03:44: InstallServices. Return value 1.
Action start 13:03:44: StartServices.
Action ended 13:03:44: StartServices. Return value 1.
Action start 13:03:44: RegisterUser.
Action ended 13:03:44: RegisterUser. Return value 0.
Action start 13:03:44: RegisterProduct.
Action ended 13:03:44: RegisterProduct. Return value 1.
Action start 13:03:44: PublishFeatures.
Action ended 13:03:44: PublishFeatures. Return value 1.
Action start 13:03:44: PublishProduct.
Action ended 13:03:44: PublishProduct. Return value 1.
Action start 13:03:44: InstallFinalize.
ExecXmlFile:  Configuring Xml File: C:\Program Files\Microsoft SQL
Server\MSRS10.INSTANCE1\Reporting Services\ReportManager\Web.config
ExecXmlFile:  Configuring Xml File: C:\Program Files\Microsoft SQL
Server\MSRS10.INSTANCE1\Reporting
Services\ReportServer\rsreportserver.config
ExecXmlFile:  Configuring Xml File: C:\Program Files\Microsoft SQL
Server\MSRS10.INSTANCE1\Reporting
Services\ReportServer\rssrvpolicy.config
ExecXmlFile:  Configuring Xml File: C:\Program Files\Microsoft SQL
Server\MSRS10.INSTANCE1\Reporting Services\ReportServer\web.config
ExecXmlFile:  Configuring Xml File: C:\Program Files\Microsoft SQL
Server\MSRS10.INSTANCE1\Reporting
Services\ReportManager\rsmgrpolicy.config
Action ended 13:04:03: InstallFinalize. Return value 1.
Action ended 13:04:03: INSTALL. Return value 1.

Amy Rosewater
SPECTRUM Human Resource Systems Corporation
707 17th Street Suite 3800
Denver CO, 80202
303.592.3403
arosewa...@spectrumhr.com


------------------------------------------------------------------------
------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
Nevada.
The future of the web can't happen without you.  Join us at MIX09 to
help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.
com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------
------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,
Nevada.
The future of the web can't happen without you.  Join us at MIX09 to
help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.
com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to