繁体   English   中英

是否有托管API来管理IIS 8?

[英]Is there a managed API to manage 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的2008 R2机器的7.0.0.0)

我没有停止网站的问题:

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

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

确保已启用“模拟”,并且您正在使用正确的管理员信息为web.config中的模拟语句分配用户和密码。 这将缓解任何进一步的问题。

在web.config中添加此语句(如果它不是它们已经存在)。

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

还要在IISManager中确保您已将模拟设置为“已启用”并且匿名身份验证关闭为“已禁用”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM