从自己的网页重新启动网站

时间:2009-07-14 09:11:48

标签: asp.net iis

嗯,只是为了保持简单:我有一个网络表单。在它上面一个名为“重启”的按钮。我点击这个按钮,IIS将重新启动。

现在,我需要在此Web按钮的OnClick事件后面编写什么C#代码? (如果有可能吗?)

<小时/> 然后添加第二个按钮。它被称为“重置”,应该只为当前的Web应用程序重置AppDomain。这个代码是什么?

4 个答案:

答案 0 :(得分:11)

protected void Reload_Click(object sender, EventArgs e)
{
    HttpRuntime.UnloadAppDomain();
}

protected void Restart_Click(object sender, EventArgs e)
{
    using (var sc = new System.ServiceProcess.ServiceController("IISAdmin"))
    {
        sc.Stop();
        sc.Start();
    }
}

答案 1 :(得分:3)

Process iisreset = new Process();
iisreset.StartInfo.FileName   = "iisreset.exe";
iisreset.StartInfo.Arguments = "computer name";
iisreset.Start();

//iisreset.exe is located in the windows\system32 folder.

答案 2 :(得分:1)

http://www.velocityreviews.com/forums/t300488-how-can-i-restart-iis-or-server-from-aspx-page-or-web-service.html

string processName = "aspnet_wp";

System.OperatingSystem os = System.Environment.OSVersion;

//Longhorn and Windows Server 2003 use w3wp.exe
if((os.Version.Major == 5 && os.Version.Minor > 1) || os.Version.Major ==6)
   processName = "w3wp";

foreach(Process process in Process.GetProcessesByName(processName))
   {
      Response.Write("Killing ASP.NET worker process (Process ID:" +
      process.Id + ")");
      process.Kill();
   }

答案 3 :(得分:1)

在运行此代码的服务器上是否托管了多个网站?如果是这样,您可能需要查看System.DirectoryServices名称空间,然后重新启动单个网站