嗨,我正在使用 sharepoint 2007,要求是在 IISreset 后停止正在进行的 sharepoint 列表上的所有工作流。
我如何使用 C# 以编程方式查找最后一次 IISReset 时间。
嗨,我正在使用 sharepoint 2007,要求是在 IISreset 后停止正在进行的 sharepoint 列表上的所有工作流。
我如何使用 C# 以编程方式查找最后一次 IISReset 时间。
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());
}