是否有一个托管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
的实例。
我刚刚在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中您已将模拟打开为"启用",并将匿名身份验证关闭为"禁用"。