History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: CCNET-1199
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Blocker Blocker
Assignee: Ross Patterson
Reporter: icnocop
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
CruiseControl .NET

Silently installing ccnet server v1.4 rc1 produces a message box

Created: 23/Jul/08 05:14 AM   Updated: 14/Aug/08 04:10 PM
Component/s: Installation
Affects Version/s: 1.4
Fix Version/s: 1.4.1

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown
Environment: Windows XP Professional x64 SP2


 Description  « Hide
Hi.

Silently installing CruiseControl.Net Server v1.4 RC1 on Windows XP Professional x64 SP2 produces the following message box:

"The installer attempted to set the ASP.NET version for the CruiseControl.NET Web Dashboard but was not successful. Please check IIS after the installer has completed and manually set the ASP.NET version."



 All   Comments   Work Log   Change History      Sort Order:
Ross Patterson [23/Jul/08 09:27 AM]
This happens when the asp_regiis command fails for some reason. The CCNET installer tries to execute the following command:

   "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -s "W3SVC/1/ROOT/ccnet"

Please try that by hand and let us know what happens.

icnocop [23/Jul/08 11:40 AM]
Hi.

Thank you for the reply.

The work around is to enable 32-bit apps on 64-bit in IIS by running:
1. cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
2. "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -r
3. "C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe" -s "W3SVC/1/ROOT/ccnet"


Here is the detailed output:

C:\Documents and Settings\Administrator>"C:\WINDOWS\Microsoft.NET\Framework\v2.0
.50727\aspnet_regiis.exe" -s "W3SVC/1/ROOT/ccnet"
The error indicates that IIS is in 64 bit mode, while this application is a 32 b
it application and thus not compatible.

C:\Documents and Settings\Administrator>cscript.exe C:\Inetpub\AdminScripts\adsu
til.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Enable32bitAppOnWin64 : (BOOLEAN) True

C:\Documents and Settings\Administrator>"C:\WINDOWS\Microsoft.NET\Framework\v2.0
.50727\aspnet_regiis.exe" -s "W3SVC/1/ROOT/ccnet"
Start registering ASP.NET scriptmap (2.0.50727) recursively at W3SVC/1/ROOT/ccne
t.
The error indicates that this version of ASP.NET must first be registered on the
 machine.

C:\Documents and Settings\Administrator>"C:\WINDOWS\Microsoft.NET\Framework\v2.0
.50727\aspnet_regiis.exe" -r
Start installing ASP.NET (2.0.50727) and replacing ASP.NET DLL in all Scriptmaps
 with current version.
.................................................
Finished installing ASP.NET (2.0.50727) and replacing ASP.NET DLL in all Scriptm
aps with current version.

C:\Documents and Settings\Administrator>"C:\WINDOWS\Microsoft.NET\Framework\v2.0
.50727\aspnet_regiis.exe" -s "W3SVC/1/ROOT/ccnet"
Start registering ASP.NET scriptmap (2.0.50727) recursively at W3SVC/1/ROOT/ccne
t.
Finished registering ASP.NET scriptmap (2.0.50727) recursively at W3SVC/1/ROOT/c
cnet.

Ross Patterson [23/Jul/08 05:30 PM]
Very interesting. CCNET is a pure-.NET C# application, and is compiled to MSIL, not to 32-bit machine code, so I'm surprised that IIS complained. I was actually expecting you to come back and say that aspnet_regiis was located somewhere else. But this is surprising.

icnocop [23/Jul/08 05:38 PM]
Well there is another aspnet_regiis.exe here:

C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_regiis.exe

But I have yet to try it.

Ross Patterson [23/Jul/08 10:33 PM]
Please check out your registry and tell me:

1) What keys are under HKLM\Software\Microsoft\.NetFramework\policy\v2.0

2) What is the value of HKLM\Software\Microsoft\.NetFramework\InstallRoot

I think the issue may be that CCNET should be using the version of aspnet_regiis.exe that is in Framework64, not the version in Framework.

icnocop [23/Jul/08 11:31 PM]
HKLM\Software\Microsoft\.NetFramework\policy\v2.0

Has one key (REG_SZ):
50727
with value:
50727-50727

The value of HKLM\Software\Microsoft\.NetFramework\InstallRoot is:
C:\WINDOWS\Microsoft.NET\Framework64\

Thank you.
:)

icnocop [23/Jul/08 11:36 PM]
On 64-bit machines there is also this registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

And the value of InstallRoot there is
C:\WINDOWS\Microsoft.NET\Framework\

And so maybe the ccnet setup installer should disable registry redirection when running on x64.

Here is some more technical information:
http://support.microsoft.com/kb/896459

Ross Patterson [14/Aug/08 04:10 PM]
Revision #4014 changes createCCNetVDir.vbs to locate aspnet_regiis.exe via the chain of registry keys rather than by a hard-coded pathname.