0

嗨,我正在使用 sharepoint 2007,要求是在 IISreset 后停止正在进行的 sharepoint 列表上的所有工作流。

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

4

1 回答 1

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());
}
于 2013-07-05T13:07:14.213 回答