从自己的线程停止IIS网站

我正在使用下面的代码来阻止我的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的exception:0x80070005(E_ACCESSDENIED))”

Solutions Collecting From Web of "从自己的线程停止IIS网站"

我认为你应该运行Powershell脚本来处理这种情况,因为我想要停止自己的进程。 这意味着在停止之后,你的进程将被终止,并且不能执行更新。 使用Power Shell,您可以停止进程,复制文件并重新开始

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