c# - 是否有管理 IIS 8 的托管 API?

标签 c# .net-4.5 iis-8

在 IIS7 中,您曾经可以使用 Microsoft.Web.Administration dll 来管理 IIS。

我已将此引用添加到我的项目中,但是运行以下代码会在 site.Stop() 处导致 NotImplementedException:

using (var server = new ServerManager())
{
    var site = server.Sites.FirstOrDefault(s => s.Name == instanceName);
    if (site != null)
    {
        site.Stop();
    }
}

是否有此 API 的更新版本或从 .Net 管理 IIS 的替代方法?

如果可能的话,我宁愿不使用 WMI 或必须生成 appcmd 的实例。

最佳答案

我刚刚在 IIS 8 和 7 上测试了以下代码片段(分别使用来自 Windows 8 的 GAC 的 7.9.0.0 和来自 nuget 的 7.0.0.0 用于 2008 R2 机器)

而且我停止网站也没有问题:

var manager = new ServerManager();
manager.Sites[0].Stop();
manager.Dispose();

我唯一需要特别做的就是以管理员身份明确运行 Linqpad 以使其正常工作。也许那是你的问题? Windows 8/Server 2012 不会自动为您提供管理员访问权限,除非您的应用程序 list 强制要求。我相信这也适用于 7/2008 R2 但无关紧要,因为您已明确标记为 IIS8(UAC ftw!)

关于c# - 是否有管理 IIS 8 的托管 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17086640/

相关文章:

c# - AjaxControlToolkit AjaxFileUpload 无法上传 IIS 保留文件类型

c# - 无法创建对象

c# - LINQ:将数组 [,] 转换为数组 []

c# - 尝试在启动项目以外的项目中使用迁移会导致错误

c# - MySql 使用.Net/Connector 批处理存储过程调用?

visual-studio-2015 - 如何设置 IBM DB2 9.7 以使用 Entity Framework 6 和 Visual Studio 2015?

.net - Visual Studio 2010 是否支持 .NET 4.5 CTP?

c# - 如何使用 C# 调用 REST API?

asp.net - IIS Express 无法在 Visual Studio 2012 中工作

.net - 将 .NET 项目从非托管项目切换到托管 ODP.NET 程序集时出现问题