我正在寻找停止/启动IIS网站的c#.Net应用程序(网络或桌面)。
我在互联网上搜索这个,我找不到一个有用的例子或解释。
我找到了这个dll http://msdn.microsoft.com/en-us/library/microsoft.web.administration.servermanager%28v=VS.90%29.aspx
这是我尝试停止/启动IIS网站的示例:
“使用Microsoft.Web.Administration”参考..
var server = new ServerManager();
var site = server.Sites.FirstOrDefault(s => s.Name == "SITENAME");
if (site != null)
{
//stop the site...
site.Stop();
if (site.State == ObjectState.Stopped)
{
//do deployment tasks...
}
else
{
throw new InvalidOperationException("Could not stop website!");
}
//restart the site...
site.Start();
}
else
{
throw new InvalidOperationException("Could not find website!");
}
site.Stop抛出异常:
"Access denied. (Excepción de HRESULT: 0x80070005 (E_ACCESSDENIED))"
ExceptionType“UnauthorizedAccessException”
我该怎么做?我做错了什么?
答案 0 :(得分:2)
扩展我的评论: 错误似乎很明显,您的应用程序运行的安全上下文没有权限。如果您的程序本身在IIS下运行,请确保其使用的应用程序池具有特权用户帐户。
在IIS中,您的网站在应用程序池下运行。确保应用程序池使用具有足够权限的标识。默认的ApplicationPoolIdentity帐户没有提升权限。
出于测试目的,您可以使用自己的登录名,因为您表明它具有管理权限。
答案 1 :(得分:1)
您需要以管理员身份运行该程序。