是否有一个托管API来管理iis8 ?

本文关键字:管理 iis8 API 有一个 是否 | 更新日期: 2023-09-27 18:18:26

在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的实例。

是否有一个托管API来管理iis8 ?

我刚刚在IIS 8和7上测试了下面的代码片段(使用Windows 8的GAC的7.9.0.0);7.0.0.0 from nuget for 2008 R2)

和我没有问题停止网站:

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

我唯一需要特别做的就是以管理员身份显式地运行Linqpad以使其工作。也许这就是你的问题?Windows 8/Server 2012不会自动给你Administrator访问权限,除非你的应用程序清单要求它。我相信这也适用于7/2008 R2,但不相关,因为您已经明确标记为IIS8 (UAC ftw!)

确保您已打开"impersonate",并且您正在分配web中的impersonate语句的用户和密码。配置正确的管理员信息。这将缓解任何进一步的问题。

在网上。

<identity impersonate="true" userName="LOCALMACHINE'ADMINUSER" password="PASSWORD" />

还要确保在IISManager中您已将模拟打开为"启用",并将匿名身份验证关闭为"禁用"。