虽然这个问题有点过期,但我昨天在编写一些 c# 代码来编程操作应用程序池时遇到了这个问题。
我在以下链接中的 doc 中找到了时间表示例,其中显示“添加应用程序池...然后将应用程序池设置为每天凌晨 3:00 回收”,这意味着我们无法通过添加指定固定的回收时间跨度时间表。
http://www.iis.net/configreference/system.applicationhost/applicationpools/add/recycling/periodicrestart/schedule/add#006
这就是为什么它会抛出异常来询问 23:59:59 以下的时间跨度。
当您想指定一个固定的回收时间跨度时,您应该使用来自periodicRestart 级别的时间属性。有关满足您要求的各种方法的示例,请参阅此文档。
http://www.iis.net/configreference/system.applicationhost/applicationpools/add/recycling/periodicrestart#005
// add schedule to recycle at 3 am every day
appPool.Recycling.PeriodicRestart.Schedule.Clear();
appPool.Recycling.PeriodicRestart.Schedule.Add(new TimeSpan(3, 0, 0));
// set to recycle every 3 hours
appPool.Recycling.PeriodicRestart.Time = new TimeSpan(3, 0, 0);