1

我正在寻找停止/启动 IIS 网站的 ac# .Net 应用程序(Web 或桌面)。

我在互联网上搜索此内容,但找不到有效的示例或解释。

我找到了这个 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))"

异常类型“未授权访问异常”

我怎样才能做到这一点?我做错了什么?

4

2 回答 2

2

扩展我的评论:错误似乎很明显,您的应用程序运行的安全上下文没有权限。如果您的程序本身在 IIS 下运行,请确保它使用的应用程序池具有特权用户帐户。

在 IIS 中,您的网站在应用程序池下运行。确保应用程序池正在使用具有足够权限的身份。默认 ApplicationPoolIdentity 帐户没有提升权限是有充分理由的。

出于测试目的,您可以使用自己的登录名,因为您表示它具有管理权限。

在此处输入图像描述

于 2012-07-02T13:23:32.683 回答
1

您将需要以管理员身份运行该程序。

于 2012-07-02T00:36:07.840 回答