Link to home
Start Free TrialLog in
Avatar of reiszj
reiszj

asked on

Visual Studio 2003 Web Setup Project fails on Windows 2008 64-bit

I have a web setup project created in Visual Studio.NET 2003  that installs fine on Windows 2003 32-bit just fine, but fails on Windows 2008 Server Standard Edition 64-bit Service Pack 2.  The install is able to create the directory and copy the files, create the virtual directory, and assign "Default App Pool" as the virtual directory's application pool.

Here is what I did to the server before installing:

1) Within IIS, added all sub-items under "IIS 6 Management Capability Feature" and under Security I added "Windows Authentication"

2) Enabled 32-bit apps on 64-bit: cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

3) Allow CGI and ISAPI restrictions for .NET 1.1: run aspnet_regiis.exe -ir -enable under the .NET 1.1.4322 directory.

4) Added the following key to .NET 1.1 machine.config: <section name="system.webServer" type="System.Configuration.IgnoreSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

5) Created the following folders under \windows\microsoft.net\framework64: v1.1.4322\config and then copied machine.config from framework\v1.1.4322\config to the newly created config folder.  I wasn't able to see config settings in IIS Manager for the virtual directory without making this change.

After the install hung the first time, I commented out all the custom code in the installer class except for stub code in overridden install, commit, rollback, and uninstall methods.  Leaving calling the base methods.  For Example,

<Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
     MyBase.Install(stateSaver)
End Sub

I also removed the security attribute decorating the methods, but that didn't work either.  When I removed my custom actions from the setup project then it was able to successfully run.

Here is a snippet from the msi log file where it runs into an error:

MSI (s) (88:DC) [10:15:23:591]: Hello, I'm your 32bit Elevated custom action server.
MSI (s) (88:54) [10:15:25:482]: QueryPathOfRegTypeLib returned 0 in remote context.      Path is 'C:\inetpub\wwwroot\TestApp\bin\Config.Info.tlb'
MSI (s) (88:54) [10:15:25:498]: Note: 1: 1402 2: UNKNOWN32\TypeLib\{AF3642A3-DE18-409D-8FDD-C85F0CC4D2C4}\100.0\0\win32 3: 2
MSI (s) (88:54) [10:15:25:498]: CMsiServices::ProcessTypeLibrary runs in remote context, not impersonated.
MSI (s) (88:54) [10:15:28:451]: CMsiServices::ProcessTypeLibrary runs in remote context, not impersonated.
MSI (s) (88:54) [10:15:29:154]: Executing op: ActionStart(Name=SelfRegModules,Description=Registering modules,Template=File: [1], Folder: [2])
MSI (s) (88:54) [10:15:29:169]: Executing op: ProgressTotal(Total=2,Type=1,ByteEquivalent=1300000)
MSI (s) (88:54) [10:15:29:169]: Executing op: SetTargetFolder(Folder=C:\inetpub\wwwroot\TestApp\bin\)
MSI (s) (88:54) [10:15:29:169]: Executing op: RegSelfReg(File=SocketCOM.dll,FileID=_A5A416DBAB7954249EA31CC466FF7F00)
MSI (s) (88:54) [10:15:29:732]: Executing op: RegSelfReg(File=Connex.dll,FileID=_EBDCC5C96C2A7E386DA656D879102C15)
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_0CC6F150_C899_47AB_96BE_38F99C97F441.commit,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Action=_0CC6F150_C899_47AB_96BE_38F99C97F441.commit,ActionType=1537,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=commit /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\wwwroot\TestApp\ "C:\inetpub\wwwroot\TestApp\Config.Setup.Custom.dll" "C:\Users\ADMINI~1\AppData\Local\Temp\CFG84BF.tmp")
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_A59BE3B2_345C_4C7D_BE11_701820CF849F.rollback,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Action=_A59BE3B2_345C_4C7D_BE11_701820CF849F.rollback,ActionType=1281,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=rollback /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\wwwroot\TestApp\ "C:\inetpub\wwwroot\TestApp\Config.Setup.Custom.dll" "C:\Users\ADMINI~1\AppData\Local\Temp\CFG84BF.tmp")
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_5987074A_D0D8_4CBE_8C27_4DE625C9F4F2.install,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Action=_5987074A_D0D8_4CBE_8C27_4DE625C9F4F2.install,ActionType=1025,Source=BinaryData,Target=ManagedInstall,CustomActionData=/installtype=notransaction /action=install /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\wwwroot\TestApp\ "C:\inetpub\wwwroot\TestApp\Config.Setup.Custom.dll" "C:\Users\ADMINI~1\AppData\Local\Temp\CFG84BF.tmp")
MSI (s) (88:14) [10:15:29:841]: Invoking remote custom action. DLL: C:\Windows\Installer\MSID6C0.tmp, Entrypoint: ManagedInstall
Action ended 10:15:34: InstallFinalize. Return value 3.

Sorry for being so long, but wanted to make sure you had all the facts.

Thanks for your help.
Avatar of reiszj
reiszj

ASKER

I did verify that the issue isn't segregated to Windows 2008 64-bit as I get the same behavior with Windows 2008 32-bit.
Avatar of Meir Rivkin
u mentioned that when u remove the custom actions code, the installer completed successfully.
what the custom actions code contains?
can u point out the code which fails the installation?
Avatar of reiszj

ASKER

Sedgwick, the custom actions code only calls the base method.  For Example, for install here is the custom action code:

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)
   MyBase.Install(stateSaver)
End Sub

Since, I was having problems I commented out all my code and left only invoking the base class method.

I also updated the msi to turn set NoImpersonate, but I still get the error message.

Thanks.
Avatar of reiszj

ASKER

Sedgwick, I cannot point out the code that is failing since I believe the error is that the installer cannot invoke the dll:

MSI (s) (88:14) [10:15:29:841]: Invoking remote custom action. DLL: C:\Windows\Installer\MSID6C0.tmp, Entrypoint: ManagedInstall
Action ended 10:15:34: InstallFinalize. Return value 3.

I have even changed the Install method to only include a MsgBox() and it does not get to that point to open the dialog.

Thanks.
Avatar of reiszj

ASKER

I was not able to resolve the issue, but I did setup a new box with Windows 2008 Server SP2 and my setup  ran successfully.  I will need to check with my IT Department how they configured the server that is causing the setup to fail.
Why don't you switch to DEBUG mode and put a

Debugger.Break

statement? That will allow you to see which line is causing the problem.

If I recall correctly, there was no support for FX1.1 in 64 bit. So, as for the Item#5 in your original post, I wouldn't do that...

and also, Win2008 comes with an application called appcmd.exe that will allow you change almost anything regarding IIS/Apps/etc. It's under c:\windows\system32\inetsrv directory.
ASKER CERTIFIED SOLUTION
Avatar of reiszj
reiszj

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial