在IIS7中,您过去可以使用IIS来管理Microsoft.Web.Administration。
我已经将此引用添加到我的项目中,但是运行以下代码会在site.Stop()中生成一个NotImplementedException
using (var server = new ServerManager())
{
var site = server.Sites.FirstOrDefault(s => s.Name == instanceName);
if (site != null)
{
site.Stop();
}
}是否有此应用程序接口的更新版本或从.Net管理IIS的替代方法?
如果可能的话,我不希望使用WMI,或者必须派生一个appcmd实例。
发布于 2013-06-13 22:14:09
我刚刚在IIS8和IIS7上测试了以下代码片段(分别使用Windows8的GAC的7.9.0.0和2008年R2机器的nuget的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!)
发布于 2014-05-04 12:30:38
确保您打开了" impersonate“,并且为web.config中impersonate语句的用户和口令分配了正确的管理员信息。这将缓解任何进一步的问题。
在web.config中添加此语句(如果它还不是他们的语句)。
<identity impersonate="true" userName="LOCALMACHINE\ADMINUSER" password="PASSWORD" />还要确保您在IISManager中打开了模拟"enabled“,关闭了"disabled”匿名身份验证。
https://stackoverflow.com/questions/17086640
复制相似问题