Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从自己的网页重新启动网站_Asp.net_Iis - Fatal编程技术网

Asp.net 从自己的网页重新启动网站

Asp.net 从自己的网页重新启动网站,asp.net,iis,Asp.net,Iis,好吧,简单一点:我有一个网络表单。上面有一个叫“重启”的按钮。我点击这个按钮,IIS将自动重启 现在,我需要在这个web按钮的OnClick事件后面编写什么样的C代码?(如果可能的话?) 然后添加第二个按钮。它被称为“重置”,应该只重置当前web应用程序的AppDomain。这个的代码是什么?() protected void Reload_Click(object sender, EventArgs e) { HttpRuntime.UnloadAppDomain(); } pro

好吧,简单一点:我有一个网络表单。上面有一个叫“重启”的按钮。我点击这个按钮,IIS将自动重启

现在,我需要在这个web按钮的OnClick事件后面编写什么样的C代码?(如果可能的话?)
然后添加第二个按钮。它被称为“重置”,应该只重置当前web应用程序的AppDomain。这个的代码是什么?

()

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();
    }
}

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

要重新启动什么。。。整个IIS实例还是这个特定的应用程序?实际上,两者都有。同一台IIS服务器上还有另一个应用程序,它倾向于在不释放资源的情况下耗尽资源。因此,重新启动只是以一种简单的方式解决了这个问题。这似乎是一个不错的选择,因为它只会重新启动您的应用程序,而不会重新启动该服务器上托管的其他应用程序。请小心终止这样的进程。它可能会有意想不到的行为。Iisreset.exe将执行重新启动iss所需的所有TAK操作,并且它肯定不会对aspnet_wp造成硬杀伤。此服务器上托管有多个网站,但可以执行重置的应用程序旨在将它们全部重置。它应该维护那些其他站点。
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();
   }
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.