本文介绍了重新启动(回收)应用程序池的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从 C# (.net 2) 重新启动(回收)IIS 应用程序池?
How can I restart(recycle) IIS Application Pool from C# (.net 2)?
感谢您发布示例代码?
推荐答案
如果您使用的是 IIS7,那么它会在停止时执行.我假设您可以调整重新启动而无需显示.
If you're on IIS7 then this will do it if it is stopped. I assume you can adjust for restarting without having to be shown.
// Gets the application pool collection from the server.
[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetApplicationPoolCollection()
{
// Use an ArrayList to transfer objects to the client.
ArrayList arrayOfApplicationBags = new ArrayList();
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
foreach (ApplicationPool applicationPool in applicationPoolCollection)
{
PropertyBag applicationPoolBag = new PropertyBag();
applicationPoolBag[ServerManagerDemoGlobals.ApplicationPoolArray] = applicationPool;
arrayOfApplicationBags.Add(applicationPoolBag);
// If the applicationPool is stopped, restart it.
if (applicationPool.State == ObjectState.Stopped)
{
applicationPool.Start();
}
}
// CommitChanges to persist the changes to the ApplicationHost.config.
serverManager.CommitChanges();
return arrayOfApplicationBags;
}
如果您使用的是 IIS6,我不太确定,但您可以尝试获取 web.config 并编辑修改日期或其他内容.对 web.config 进行编辑后,应用程序将重新启动.
If you're on IIS6 I'm not so sure, but you could try getting the web.config and editing the modified date or something. Once an edit is made to the web.config then the application will restart.
这篇关于重新启动(回收)应用程序池的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!