簡體   English   中英

從自己的線程停止IIS網站

[英]Stop IIS website from its own thread

我正在使用以下代碼從其自己的線程停止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))”

我想您應該針對這種情況運行Powershell腳本,因為您想停止該進程,據我所知。 這意味着停止后,您的進程將被殺死,無法執行任何更新。 使用Power Shell,您可以停止進程,復制文件並重新開始

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM