Включить ASP.NET в IIS6 программным способом - PullRequest
4 голосов
/ 26 октября 2009

Есть ли способ включить расширение веб-службы ASP.NET в IIS6 через C #? Я пытаюсь упростить программу настройки веб-сайта для людей, которые раньше не использовали IIS.

Ответы [ 5 ]

4 голосов
/ 10 сентября 2010

C # NET. Использование фреймворка:

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

Использование CMD:

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

Это полезно.

Источник: https://serverfault.com/questions/1649/why-does-iis-refuse-to-serve-asp-net-content

2 голосов
/ 26 октября 2009

Просмотр всех примеров этого написан на vbscript. Поэтому я обманул и придумал эту функцию:

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);
}
2 голосов
/ 26 октября 2009

Вы можете достаточно легко вызвать WMI (пространство имен System.Management, IIRC), и я полагаю, что вы можете установить его оттуда. Тем не менее, это может быть гораздо проще установить вручную, вы не можете сделать это на сайте ASP.NET, так как ваш сервер не сможет запустить его, пока он не установлен ...

Принципы создания чего-то подобного можно найти здесь

1 голос
/ 15 июля 2011
// 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");
}

Скопировано из: http://lastdon.blogspot.com/2006/12/setup-web-application-on-windows-2003.html

0 голосов
/ 10 ноября 2009

Полагаю, вы также можете запустить следующую командную строку:

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

И это будет рекурсивно включать платформу AND.NET v2.0.50727 для всех настроенных сайтов.

...