如何在C#中查找上次IISreset时间

时间:2013-07-05 13:03:37

标签: c# sharepoint iis

您好我正在使用sharepoint 2007,并且要求在IISreset之后停止正在进行的共享点列表上的所有工作流。

如何使用C#以编程方式查找最后一次IISReset时间。

1 个答案:

答案 0 :(得分:0)

SCM或服务控制管理器记录此信息。您需要在事件查看器中打开系统日志并查看。

EventLog eventLog = new EventLog();

eventLog.Log = "System";

eventLog.Source = "Service Control Manager"; //Not 100% sure thats correct

eventLog.MachineName = "IIS Server name";

foreach (EventLogEntry log in eventLog.Entries)
{
    Console.WriteLine("{0}\n",log.<Property you need for info>);
}

我想弄清楚事件ID会是什么并关闭它,而不是只匹配错误文本或沿着这些行的任何东西。刚刚快速搜索我相信它的3203.以下是WMI解决方案,我建议对两者进行一些性能测试。还有另一种方法是EventLogReader,它要求你有windows vista或7或windows server 2008或更高版本,你也可以使用它。

var query = new ObjectQuery("Select * from Win32_NTLogEvent
                         where LogFile='Application'");
var searcher = new ManagementObjectSearcher(query);
var result = searcher.Get(); // Result is your Collection of Event Log entries 
foreach(var eventEntry in result)
{
  //access properties in this fashion would suggest try parse 
  int id = int.Parse(eventEntry["Event ID Property Name"].ToString());
}