views:

258

answers:

4

Is there a way to enable the ASP.NET Web Service Extension in IIS6 via C#? I'm trying to simplify a website setup program for people who haven't used IIS before.

+2  A: 

You could call out to WMI easily enough (System.Management namespace, IIRC) and I believe you can set it from there. However, it may well be much simpler to set it manually, you can't do it from within an ASP.NET site since your server won't be able to run it until it is set...

Principles of doing something similar may be found here

ZombieSheep
Thanks, I want to set it up from post install action I have.
Jake Pearson
+2  A: 

Looking around all the examples of this are written in vbscript. So I cheated and came up with this function:

static void EnableASPNET()
{
    var file = "wmi.vbs";
    using (var writer = new StreamWriter(file))
    {
     writer.WriteLine("Set webServiceObject = GetObject(\"IIS://localhost/W3SVC\")");
     writer.WriteLine("webServiceObject.EnableWebServiceExtension \"ASP.NET v2.0.50727\"");
     writer.WriteLine("webServiceObject.SetInfo");
    }
    var process = Process.Start("cscript", file);
    process.WaitForExit();
    File.Delete(file);
}
Jake Pearson
A: 

I believe you can also run the following command line:

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

And this will recursively enable the AND.NET framework v2.0.50727 for all configured websites.

Bert Lamb
+1  A: 

C# NET. Framework usage:

Process.Start(@"C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis", "-i -enable");

CMD usage:

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

It's useful.

Source: http://serverfault.com/questions/1649/why-does-iis-refuse-to-serve-asp-net-content

Il'ya Tret'yakov