Customization and programming tricks by Ronny Van der Snickt

MS CRM 4.0 Setup error: ASP.NET is not installed

Today I got an error when installing MS CRM 4.0. Internet Information Services (IIS) => ASP.NET is not installed. (The screenshot is in Dutch but I tried the English installation too with the same results).

Screenshot setup ms crm 4.0

The log file didn’t helped much either

09:28:53|Verbose| Method entry: Microsoft.Crm.Tools.EDW.Framework.EDWTool.RunSnifferValidate Internet Information Services (IIS)
09:28:53|Verbose| Calling BaseGroup.Validate
09:28:53| Info| Check IIsInstalledValidator: Success
09:28:53| Info| Check IisAdminServiceValidator: Success
09:28:53| Error| Check AspNetRegisteredValidator : Failure: ASP.NET 2.0 is niet geïnstalleerd.
09:28:53| Info| Check W3svcServiceValidator: Success
0
9:28:53| Info| Check IsIIs5IsolationModeValidator: Success
09:28:53|Verbose| BaseGroup.Validate completed
09:28:53|Verbose| Method exit: Microsoft.Crm.Tools.EDW.Framework.EDWTool.RunSnifferValidate

The report server was running on the same machine, I also created a test ASP.NET 2.0 website to test the IIS and this all worked without a problem. ASP.NET was installed and even had SP2. I tried to re-register ASP.NET by running the following command line.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

Still the same result, so I googled this and I knew that I was in trouble when google didn’t give me any answers. At this point I knew that if I would ever find a solution I just need to blog this J

After some more searching and trying I decided to pull out the big guns and I started to use reflection on the setup dll’s to find out what exactly the setup was checking for.

I quickly found this function in the object Microsoft.Crm.Setup.Server.AspNetRegistrationValidator

protected override CheckResultInfo InternalCheck(IDictionary parameters)
{
bool flag = false;
try
{
using (DirectoryEntry entry = new
DirectoryEntry(“IIS://localhost/W3SVC/Filters”))
{
foreach (DirectoryEntry entry2 in entry.Children)
{
using (entry2)
{
if (entry2.Name.ToLower(CultureInfo.InvariantCulture).StartsWith(“asp.net_2″))
{
flag = true;
goto Label_00D1;
}
continue;
}
}
}
}
catch (COMException exception)
{
if (-2147463168 == exception.ErrorCode)
{
throw new InvalidOperationException(ServerResource.GetString(“IIS.Error.BadMetabasePath”, new object[0]));
}
if (-2147024891 == exception.ErrorCode)
{
throw new Exception(ServerResource.GetString(“IIS.Error.AccessDenied”, new object[0]));
}
throw;
}
Label_00D1:
if (!flag)
{
return new CheckResultInfo(CheckResult.Failure, base.GetResourceString(“AspNetRegisteredValidator.Failure.NotRegistered”, new object[0]));
}
return new CheckResultInfo(CheckResult.Success);
}

I used the code to create a console application and found that the only filter it could find was ASP.NET_4.0.30319.0. So the test failed because it was looking for asp.net_2.

The server was still an windows server 2003 and I found these filters by right clicking on websites => properties.

IIS Web Sites Properties  
IIS ISAPI Filters showing ASP.NET 4.0

On the tab ISAPI Filters I found my problem. I added a new filter called ASP.NET_2.0.50727 and selected the following file c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll

After doing this the CRM setup validated everything correct and the installation succeeded.

Screenshot setup ms crm 4.0

Comments

Comment from Dave Markle
Time: June 9, 2010, 7:10 pm

Thanks! This saved a lot of time for us.

Comment from MAX
Time: June 15, 2010, 11:12 am

thanks a lot, i had the same problem and its the only blog where i found the solution. thanks again for you work

Pingback from MS CRM Customization Fun » Ghost project in TFS: Project site folder already exists
Time: June 19, 2010, 8:28 am

[...] but nothing that worked for me. So confidence as I was after my last problem (See my previous post MS CRM 4.0 Setup error asp.net is not installed) I did a search on all dll files and put all files related to TFS in reflector. With reflector I [...]

Pingback from MS Dynamics CRM installation: ASP.NET 2.0 is not installed « Saved for later reference
Time: July 5, 2010, 1:46 pm

[...] This guy figured out what the problem is: The installer checks for a specific filter in the IIS settings, which doesn’t exist when .NET 4.0 has been installed. [...]

Comment from Assaf Lev
Time: July 6, 2010, 2:59 pm

Thank you! solved my problem too

Comment from troberts
Time: July 8, 2010, 8:12 pm

Thank you, Thank you, Thank you!

Comment from Alsenitd Rausseo
Time: July 13, 2010, 6:55 pm

Thanks man…. That’s what I needed

Comment from henri
Time: August 2, 2010, 6:45 am

Thanks for the solution.

Comment from kenny
Time: August 3, 2010, 10:03 am

You just saved my day, thanks mate!

Comment from David
Time: August 9, 2010, 3:26 pm

Great tip, thank you for your help!

Comment from Jamie
Time: August 19, 2010, 3:36 am

Thankyou you saved myself and my client a heap of trouble.

Comment from Simon
Time: November 20, 2010, 10:22 pm

Thanks! That worked a treat!!!

Comment from Manoj
Time: April 22, 2011, 5:24 pm

Good job. I had the same issue. This worked like a charm.

Comment from Kaushik
Time: September 1, 2011, 5:57 pm

Great, thank you…you saved my day

Comment from pejman
Time: September 28, 2011, 8:26 am

Hi
thank you very much. It really helped me!
without your advise, I didn’t have any idea for solving this problem.
again thank you !!!

Comment from pradeep
Time: October 13, 2011, 5:36 am

Thanks alot dude.. I was braking my head on this.

Comment from Adrian Ficker
Time: December 18, 2011, 7:34 pm

Thanks. That worked great. I had unninstalled and reinstalled all .net but without succes.

Pingback from CRM4.0 failure to detect asp.NET 2.0 being installed | Jodrik.nl
Time: July 5, 2012, 2:56 pm

[...] An extremely usefull link about this problem: http://crm.vdsnickt.eu/2010/05/ms-crm-4-0-setup-error-asp-net-is-not-installed/ [...]

Write a comment