以编程方式在IIS6中启用ASP.NET

时间:2009-10-26 15:09:19

标签: c# asp.net iis-6 windows-installer installation

有没有办法通过C#在IIS6中启用ASP.NET Web服务扩展?我正在尝试为以前没有使用过IIS的人简化网站设置程序。

5 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

你可以很容易地调用WMI(System.Management命名空间,IIRC),我相信你可以从那里设置它。但是,手动设置它可能要简单得多,你不能在ASP.NET站点内完成它,因为你的服务器在设置之后将无法运行它...

可以找到做类似事情的原则here

答案 2 :(得分:2)

查看所有这些示例都是用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);
}

答案 3 :(得分:1)

// 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

答案 4 :(得分:0)

我相信你也可以运行以下命令行:

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

这将以递归方式为所有已配置的网站启用AND.NET框架v2.0.50727。