Windows 2003 come with NET 1.1 preinstalled. However, ASP.NET web extension may be not installed by default. It is depends on checkbox ASP.NET in the "Windows Components" of the Add/Remove Programs.
Well, I can ask user to prepare the system, before install my web application.
However, I get clear right now, it doesn't help to me. Because it is ASP.NET 1.1 and nothing more. So, I leave user without stupid requirements and do following.
My setup installs .NET 2
My setup registers ASP.NET 2 through aspnet_regiis.exe
But ASP.NET web extension appears in the IIS settings as
prohibitedOk, another day for search/trying/insomnia and my C# application running from the setup, will do things right:
// if windows 2003 if (Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 2) { DirectoryEntry folderRoot = new DirectoryEntry("IIS://localhost/W3SVC"); folderRoot.Invoke("EnableWebServiceExtension", "ASP.NET v2.0.50727"); }
|
Bingo!
User installs my web application setup, and doesn't complain. :)
I found also other usefull methods:
-----------
If we want to check, is ASP.NET installed at all
we should use
ListWebServiceExtensions and search for ASP.NET in the returned list of extensions.
System.Array installedObj = (System.Array)folderRoot.Invoke("ListWebServiceExtensions", null);
-----------
Also we can check, is web extension restricted or not. If ASP.NET is restricted, then property
WebSvcExtRestrictionList will return list containing ASP.NET:
System.Array restrictedObj = (System.Array)folderRoot.Properties["WebSvcExtRestrictionList"].Value;