如何从C#(.net 2)重新启动(回收)IIS应用程序池?
感谢您发布示例代码吗?
如果您使用的是 IIS7, 则在停止时将执行此操作。我认为您可以调整以重新启动而无需显示。
// 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进行编辑后,应用程序将重新启动。