如何在C#中停止各种应用程序池? [英] How to stop various application pools in C#?
本文介绍了如何在C#中停止各种应用程序池?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在c#中停止应用程序池。但是我得到了异常
未知错误(0x80005000)。
我尝试了什么:
#region IIS内存管理停止池//由Mathew在19 /上添加06/2017
public bool StopPool(string appPoolName)
{
string errorPath = ConfigurationManager.AppSettings [SERVICE_ERROR_PATH]。ToString()。Trim();
string ErrorFile =Application_Pool_Reset_+ DateTime.Now.ToString(ddMMyyyy)+。txt;
尝试
{
Common.WriteTextFile(errorPath + ErrorFile,----------------------- -------------------------------------------------- ---------------------------
+ Environment.NewLine);
if(appPoolName == null)
{
抛出新的ArgumentNullException(applicationPoolName);
}
//使用(DirectoryEntry applicationPool = new
// DirectoryEntry(IIS:// localhost / W3SVC / AppPools /+ appPoolName))
/ / {
// Common.WriteTextFile(errorPath + ErrorFile,----------------------------- Stopping Application Pool + appPoolName +---------------------------------------------- - );
// applicationPool.Invoke(停止);
// Common.WriteTextFile(errorPath + ErrorFile,-----------------------------停止调用应用程序池+ appPoolName +----------------------------------------------- - );
//}
string appPoolPath = @IIS://+ System.Environment.MachineName +/ W3SVC / AppPools /+ appPoolName;
try
{
DirectoryEntry w3svc = new DirectoryEntry(appPoolPath);
w3svc.Invoke(Stop,null);
// status();
}
catch(Exception ex)
{
//Response.Write(ex.ToString());
}
//Common.WriteTextFile(errorPath + ErrorFile,DateTime.Now.ToString(yyy-MM-dd HH:mm:ss)+ Environment.NewLine +Service Hanging监控结束......+ Environment.NewLine);
}
catch(exception ex)
{
Common.WriteTextFile(errorPath,StopPool()中的错误.Sys。错误:+ ex.Message + ex.StackTrace) ;
返回false;
}
返回true;
}
解决方案
参见此文章:使用C#管理IIS [ ^ ]
另请参阅此CodeProject文章中的使用DirectoryEntry管理IIS: a href =https://www.codeproject.com/Articles/18102/Howto-Almost-Everything-In-Active-Directory-via-C#10> Howto :(几乎)通过C#在Active Directory中的所有内容/ a> [ ^ ]
I am trying to stop Application Pool in c#.But I am getting the exception
"Unknown error (0x80005000)".
What I have tried:
#region IIS Memory Management Stop Pool//Added by Mathew on 19/06/2017 public bool StopPool(string appPoolName) { string errorPath = ConfigurationManager.AppSettings["SERVICE_ERROR_PATH"].ToString().Trim(); string ErrorFile = "Application_Pool_Reset_" + DateTime.Now.ToString("ddMMyyyy") + ".txt"; try { Common.WriteTextFile(errorPath + ErrorFile, "----------------------------------------------------------------------------------------------------" + Environment.NewLine); if (appPoolName == null) { throw new ArgumentNullException("applicationPoolName"); } //using (DirectoryEntry applicationPool = new //DirectoryEntry("IIS://localhost/W3SVC/AppPools/" + appPoolName)) //{ // Common.WriteTextFile(errorPath + ErrorFile, "-----------------------------Stopping Application Pool " + appPoolName + " ------------------------------------------------"); // applicationPool.Invoke("Stop"); // Common.WriteTextFile(errorPath + ErrorFile, "-----------------------------Stop Application Pool Invoked" + appPoolName + " ------------------------------------------------"); //} string appPoolPath = @"IIS://" + System.Environment.MachineName + "/W3SVC/AppPools/" + appPoolName; try { DirectoryEntry w3svc = new DirectoryEntry(appPoolPath); w3svc.Invoke("Stop", null); // status(); } catch (Exception ex) { //Response.Write(ex.ToString()); } //Common.WriteTextFile(errorPath + ErrorFile, DateTime.Now.ToString("yyy-MM-dd HH:mm:ss") + Environment.NewLine + "Service Hanging Monitoring End..." + Environment.NewLine); } catch (Exception ex) { Common.WriteTextFile(errorPath, "Error in StopPool(). Sys. Error:" + ex.Message + ex.StackTrace); return false; } return true; }
解决方案
See this article: Use C# to manage IIS[^]
Also see "Managing IIS with DirectoryEntry" in this CodeProject article: Howto: (Almost) Everything In Active Directory via C#[^]
这篇关于如何在C#中停止各种应用程序池?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文