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\admi nscripts\a dsutil.vbs SET W3SVC/AppPools/Enable32bit AppOnWin64 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 .IgnoreSec tionHandle r, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c56193 4e089" />
5) Created the following folders under \windows\microsoft.net\fra mework64: 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.Secu rityPermis sion(Secur ity.Permis sions.Secu rityAction .Demand)> _
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictio nary)
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\TestAp p\bin\Conf ig.Info.tl b'
MSI (s) (88:54) [10:15:25:498]: Note: 1: 1402 2: UNKNOWN32\TypeLib\{AF3642A 3-DE18-409 D-8FDD-C85 F0CC4D2C4} \100.0\0\w in32 3: 2
MSI (s) (88:54) [10:15:25:498]: CMsiServices::ProcessTypeL ibrary runs in remote context, not impersonated.
MSI (s) (88:54) [10:15:28:451]: CMsiServices::ProcessTypeL ibrary runs in remote context, not impersonated.
MSI (s) (88:54) [10:15:29:154]: Executing op: ActionStart(Name=SelfRegMo dules,Desc ription=Re gistering modules,Template=File: [1], Folder: [2])
MSI (s) (88:54) [10:15:29:169]: Executing op: ProgressTotal(Total=2,Type =1,ByteEqu ivalent=13 00000)
MSI (s) (88:54) [10:15:29:169]: Executing op: SetTargetFolder(Folder=C:\ inetpub\ww wroot\Test App\bin\)
MSI (s) (88:54) [10:15:29:169]: Executing op: RegSelfReg(File=SocketCOM. dll,FileID =_A5A416DB AB7954249E A31CC466FF 7F00)
MSI (s) (88:54) [10:15:29:732]: Executing op: RegSelfReg(File=Connex.dll ,FileID=_E BDCC5C96C2 A7E386DA65 6D879102C1 5)
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_0CC6F150 _C899_47AB _96BE_38F9 9C97F441.c ommit,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio n=_0CC6F15 0_C899_47A B_96BE_38F 99C97F441. commit,Act ionType=15 37,Source= BinaryData ,Target=Ma nagedInsta ll,CustomA ctionData= /installty pe=notrans action /action=commit /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\www root\TestA pp\ "C:\inetpub\wwwroot\TestAp p\Config.S etup.Custo m.dll" "C:\Users\ADMINI~1\AppData \Local\Tem p\CFG84BF. tmp")
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_A59BE3B2 _345C_4C7D _BE11_7018 20CF849F.r ollback,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio n=_A59BE3B 2_345C_4C7 D_BE11_701 820CF849F. rollback,A ctionType= 1281,Sourc e=BinaryDa ta,Target= ManagedIns tall,Custo mActionDat a=/install type=notra nsaction /action=rollback /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\www root\TestA pp\ "C:\inetpub\wwwroot\TestAp p\Config.S etup.Custo m.dll" "C:\Users\ADMINI~1\AppData \Local\Tem p\CFG84BF. tmp")
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_5987074A _D0D8_4CBE _8C27_4DE6 25C9F4F2.i nstall,,)
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio n=_5987074 A_D0D8_4CB E_8C27_4DE 625C9F4F2. install,Ac tionType=1 025,Source =BinaryDat a,Target=M anagedInst all,Custom ActionData =/installt ype=notran saction /action=install /LogFile= /VDIR=TestApp /PORT=80 /INSTALLDIR=C:\inetpub\www root\TestA pp\ "C:\inetpub\wwwroot\TestAp p\Config.S etup.Custo m.dll" "C:\Users\ADMINI~1\AppData \Local\Tem p\CFG84BF. tmp")
MSI (s) (88:14) [10:15:29:841]: Invoking remote custom action. DLL: C:\Windows\Installer\MSID6 C0.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.
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\admi
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
5) Created the following folders under \windows\microsoft.net\fra
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.Secu
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictio
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\TestAp
MSI (s) (88:54) [10:15:25:498]: Note: 1: 1402 2: UNKNOWN32\TypeLib\{AF3642A
MSI (s) (88:54) [10:15:25:498]: CMsiServices::ProcessTypeL
MSI (s) (88:54) [10:15:28:451]: CMsiServices::ProcessTypeL
MSI (s) (88:54) [10:15:29:154]: Executing op: ActionStart(Name=SelfRegMo
MSI (s) (88:54) [10:15:29:169]: Executing op: ProgressTotal(Total=2,Type
MSI (s) (88:54) [10:15:29:169]: Executing op: SetTargetFolder(Folder=C:\
MSI (s) (88:54) [10:15:29:169]: Executing op: RegSelfReg(File=SocketCOM.
MSI (s) (88:54) [10:15:29:732]: Executing op: RegSelfReg(File=Connex.dll
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_0CC6F150
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_A59BE3B2
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio
MSI (s) (88:54) [10:15:29:841]: Executing op: ActionStart(Name=_5987074A
MSI (s) (88:54) [10:15:29:841]: Executing op: CustomActionSchedule(Actio
MSI (s) (88:14) [10:15:29:841]: Invoking remote custom action. DLL: C:\Windows\Installer\MSID6
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.
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?
what the custom actions code contains?
can u point out the code which fails the installation?
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.IDictio nary)
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.
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictio
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.
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\MSID6 C0.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.
MSI (s) (88:14) [10:15:29:841]: Invoking remote custom action. DLL: C:\Windows\Installer\MSID6
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.
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\inetsr v directory.
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\inetsr
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER