Visual Studio 2010 fails on a Windows XP SP3 system with the following error message:
"DDSet_Error: Internal error: 2"

After reviewing the MSI log, I found that the failure occurs while executing "ReserveHttp" custom Action:

MSI (s) (7C:EC) [21:20:09:478]: Executing op: CustomActionSchedule(Action=ReserveHttp.992B75DB_179A_4B48_B260_9FD0862C9A76,ActionType=3073,Source=BinaryData,Target=Install,)
MSI (s) (7C:A8) [21:20:09:509]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI66.tmp, Entrypoint: Install
05/09/10 21:20:09 DDSet_Entry: WcfToolsInstall
05/09/10 21:20:09 DDSet_Status: HttpReservation::PerformInstall
05/09/10 21:20:09 DDSet_Status: HttpReservation::IsInstalled
05/09/10 21:20:09 DDSet_Status: HttpLibrary::HttpInitialize
05/09/10 21:20:10 DDSet_Status: HttpLibrary::HttpQueryServiceConfiguration
05/09/10 21:20:10 DDSet_Status: HttpLibrary::HttpTerminate
05/09/10 21:20:10 DDSet_Status: HttpReservation::ReserveURL
05/09/10 21:20:10 DDSet_Status: HttpLibrary::HttpInitialize
05/09/10 21:20:10 DDSet_Status: HttpLibrary::HttpSetServiceConfiguration
05/09/10 21:20:10 DDSet_Status: HttpLibrary::HttpDeleteServiceConfiguration
MSI (s) (7C!CC) [21:20:25:997]: Product: Microsoft Visual Studio 2010 Professional - ENU -- 05/09/10 21:20:10 DDSet_Error: Internal error: 2.

I ran httpcfg.exe tool
httpcfg.exe query urlacl  > urlacl.txt and looking at the utlacl.txt log, it looks like the system has an existing reservation which conflicts:    URL :

ACL : D:(A;;GX;;;S-1-5-21-143435xxx-1455057xxx-3436625xxx-1025)

So before we try to reserve we attempt to query for the exact reservation: http://+:8732/Design_Time_Addresses/, this fails, since it obviously doesn’t exist.

We then try to set the reservation, this fails because of the conflicting reservation. The delete then fails as well, because the exact reservation does not exist. It is likely that the  some other program or application has coincidentally used the same port which it used.

In order to workaround this problem, we would need to remove this urlacl with httpcfg before running Visual Studio 2010.

The command would be httpcfg.exe delete urlacl /u https://+:8732/