【问题标题】:Stop IIS website from its own thread从自己的线程停止 IIS 网站
【发布时间】:2015-07-24 11:53:19
【问题描述】:

我正在使用以下代码从自己的线程中停止我的 WCF 服务,以更新我的服务使用的一些文件。

try
{
    var server = new ServerManager();
    var site = server.Sites.FirstOrDefault(s => s.Name == "Default Web Site");
    if (site != null)
    {
        Thread.Sleep(1000);
        site.Stop();
        if (site.State == ObjectState.Stopped)
        {
            Thread.Sleep(5000);
        }
        site.Start();
    }
    else
    {
        throw new FaultException("Server Are Trying To Stop Is not Found");
    }
}
catch (Exception ex)
{
    throw new FaultException(ex.Message);
}

但是当我执行代码时出现以下错误:

“访问被拒绝。(来自 HRESULT 的异常:0x80070005 (E_ACCESSDENIED))”

【问题讨论】:

  • 请帮我解决这个问题? :(
  • 好吧,如果您的网站真的被停止了,它怎么能继续运行呢?因此,它没有停止。这永远行不通。

标签: c# windows wcf c#-4.0 iis


【解决方案1】:

我认为您应该针对这种情况运行 Powershell 脚本,因为您想停止我理解的 self 进程。这意味着停止后,您的进程将被终止并且无法执行更新。使用 power shell,您可以停止进程,复制文件并重新开始

Import-Module WebAdministration
Stop-WebSite 'Default Web Site'
#... copy files here
Start-WebSite 'Default Web Site'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 2011-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多